<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>野地名将信息表</title><style>table {width: 50%;border-collapse: collapse;margin: 20px auto;}th, td {border: 1px solid #ddd;padding: 3px;text-align: center;/* cursor: pointer; */}th {background-color: #f2f2f2;}</style>
</head>
<body><table id="generalTable"><thead><tr><th>野地名将</th><th onclick="sortTable(1)" style="cursor: pointer;">统帅</th><th onclick="sortTable(2)" style="cursor: pointer;">内政</th><th onclick="sortTable(3)" style="cursor: pointer;">勇武</th><th onclick="sortTable(4)" style="cursor: pointer;">智谋</th></tr></thead><tbody><tr><td>杨锋</td><td>68</td><td>48</td><td>75</td><td>63</td></tr><tr><td>阿贵</td><td>46</td><td>35</td><td>91</td><td>44</td></tr><tr><td>阿哙喃</td><td>81</td><td>40</td><td>91</td><td>31</td></tr><tr><td>鲍三娘</td><td>94</td><td>43</td><td>102</td><td>6</td></tr><tr><td>步度根</td><td>80</td><td>60</td><td>90</td><td>61</td></tr><tr><td>蔡琰</td><td>22</td><td>97</td><td>13</td><td>92</td></tr><tr><td>彻里吉</td><td>64</td><td>57</td><td>79</td><td>63</td></tr><tr><td>带来洞主</td><td>64</td><td>53</td><td>65</td><td>65</td></tr><tr><td>董荼那</td><td>85</td><td>44</td><td>90</td><td>38</td></tr><tr><td>朵思大王</td><td>77</td><td>66</td><td>72</td><td>85</td></tr><tr><td>俄何烧戈</td><td>76</td><td>14</td><td>93</td><td>1</td></tr><tr><td>蛾遮塞</td><td>46</td><td>30</td><td>90</td><td>41</td></tr><tr><td>费栈</td><td>53</td><td>47</td><td>87</td><td>54</td></tr><tr><td>骨进</td><td>62</td><td>29</td><td>74</td><td>28</td></tr><tr><td>呼厨泉</td><td>86</td><td>31</td><td>80</td><td>19</td></tr><tr><td>花鬘</td><td>91</td><td>31</td><td>100</td><td>39</td></tr><tr><td>黄乱</td><td>79</td><td>30</td><td>92</td><td>7</td></tr><tr><td>金环三结</td><td>80</td><td>23</td><td>93</td><td>23</td></tr><tr><td>柯吾</td><td>56</td><td>37</td><td>74</td><td>50</td></tr><tr><td>轲比能</td><td>95</td><td>72</td><td>85</td><td>63</td></tr><tr><td>刘豹</td><td>77</td><td>63</td><td>82</td><td>59</td></tr><tr><td>楼班</td><td>81</td><td>37</td><td>93</td><td>48</td></tr><tr><td>芒中</td><td>59</td><td>47</td><td>94</td><td>68</td></tr><tr><td>孟获</td><td>94</td><td>55</td><td>106</td><td>51</td></tr><tr><td>孟优</td><td>63</td><td>22</td><td>84</td><td>26</td></tr><tr><td>迷当大王</td><td>74</td><td>38</td><td>85</td><td>18</td></tr><tr><td>木鹿大王</td><td>81</td><td>7</td><td>87</td><td>48</td></tr><tr><td>潘临</td><td>82</td><td>23</td><td>97</td><td>10</td></tr><tr><td>蹋顿</td><td>104</td><td>43</td><td>100</td><td>74</td></tr><tr><td>土安</td><td>69</td><td>24</td><td>96</td><td>26</td></tr><tr><td>王同</td><td>56</td><td>30</td><td>84</td><td>50</td></tr><tr><td>乌延</td><td>46</td><td>29</td><td>86</td><td>38</td></tr><tr><td>兀突骨</td><td>89</td><td>37</td><td>98</td><td>25</td></tr><tr><td>奚泥</td><td>44</td><td>30</td><td>98</td><td>13</td></tr><tr><td>雅丹</td><td>55</td><td>63</td><td>80</td><td>69</td></tr><tr><td>阎柔</td><td>88</td><td>89</td><td>69</td><td>85</td></tr><tr><td>越吉</td><td>85</td><td>31</td><td>98</td><td>29</td></tr><tr><td>祝融夫人</td><td>97</td><td>29</td><td>104</td><td>36</td></tr></tbody></table><script>function sortTable(columnIndex) {const table = document.getElementById("generalTable");const rows = Array.from(table.rows).slice(1);const isAscending = table.rows[0].cells[columnIndex].getAttribute('data-order') === 'asc';rows.sort((rowA, rowB) => {const cellA = parseInt(rowA.cells[columnIndex].innerText);const cellB = parseInt(rowB.cells[columnIndex].innerText);return isAscending ? cellB - cellA : cellA - cellB;});rows.forEach(row => table.tBodies[0].appendChild(row));table.rows[0].cells[columnIndex].setAttribute('data-order', isAscending ? 'desc' : 'asc');}</script></body>
</html>

将HTML结构移至JavaScrdt中动态创建简化代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>野地名将信息表</title><style>table {width: 50%;border-collapse: collapse;margin: 20px auto;}th, td {border: 1px solid #ddd;padding: 3px;text-align: center;}th {background-color: #f2f2f2;}</style>
</head>
<body><div id="tableContainer"></div><script>const generals = [["杨锋", 68, 48, 75, 63],["阿贵", 46, 35, 91, 44],["阿哙喃", 81, 40, 91, 31],["鲍三娘", 94, 43, 102, 6],["步度根", 80, 60, 90, 61],["蔡琰", 22, 97, 13, 92],["彻里吉", 64, 57, 79, 63],["带来洞主", 64, 53, 65, 65],["董荼那", 85, 44, 90, 38],["朵思大王", 77, 66, 72, 85],["俄何烧戈", 76, 14, 93, 1],["蛾遮塞", 46, 30, 90, 41],["费栈", 53, 47, 87, 54],["骨进", 62, 29, 74, 28],["呼厨泉", 86, 31, 80, 19],["花鬘", 91, 31, 100, 39],["黄乱", 79, 30, 92, 7],["金环三结", 80, 23, 93, 23],["柯吾", 56, 37, 74, 50],["轲比能", 95, 72, 85, 63],["刘豹", 77, 63, 82, 59],["楼班", 81, 37, 93, 48],["芒中", 59, 47, 94, 68],["孟获", 94, 55, 106, 51],["孟优", 63, 22, 84, 26],["迷当大王", 74, 38, 85, 18],["木鹿大王", 81, 7, 87, 48],["潘临", 82, 23, 97, 10],["蹋顿", 104, 43, 100, 74],["土安", 69, 24, 96, 26],["王同", 56, 30, 84, 50],["乌延", 46, 29, 86, 38],["兀突骨", 89, 37, 98, 25],["奚泥", 44, 30, 98, 13],["雅丹", 55, 63, 80, 69],["阎柔", 88, 89, 69, 85],["越吉", 85, 31, 98, 29],["祝融夫人", 97, 29, 104, 36]];const headers = ["野地名将", "统帅", "内政", "勇武", "智谋"];const tableContainer = document.getElementById("tableContainer");const table = document.createElement("table");table.id = "generalTable";tableContainer.appendChild(table);const thead = document.createElement("thead");table.appendChild(thead);const headerRow = document.createElement("tr");thead.appendChild(headerRow);headers.forEach((header, index) => {const th = document.createElement("th");th.innerText = header;if (index > 0) {th.onclick = () => sortTable(index);th.style.cursor = "pointer";}headerRow.appendChild(th);});const tbody = document.createElement("tbody");table.appendChild(tbody);generals.forEach(general => {const row = document.createElement("tr");general.forEach(cellText => {const cell = document.createElement("td");cell.innerText = cellText;row.appendChild(cell);});tbody.appendChild(row);});function sortTable(columnIndex) {const table = document.getElementById("generalTable");const rows = Array.from(table.tBodies[0].rows);const isAscending = table.rows[0].cells[columnIndex].getAttribute('data-order') === 'asc';rows.sort((rowA, rowB) => {const cellA = parseInt(rowA.cells[columnIndex].innerText);const cellB = parseInt(rowB.cells[columnIndex].innerText);return isAscending ? cellB - cellA : cellA - cellB;});rows.forEach(row => table.tBodies[0].appendChild(row));table.rows[0].cells[columnIndex].setAttribute('data-order', isAscending ? 'desc' : 'asc');}</script></body>
</html>

再优化一下来减少代码量,保持其功能不变:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>野地名将信息表</title><style>table {width: 50%;border-collapse: collapse;margin: 20px auto;}th, td {border: 1px solid #ddd;padding: 3px;text-align: center;}th {background-color: #f2f2f2;cursor: pointer;}th:nth-child(1) {cursor: default;}</style>
</head>
<body><div id="tableContainer"></div><script>const generals = [["杨锋", 68, 48, 75, 63],["阿贵", 46, 35, 91, 44],["阿哙喃", 81, 40, 91, 31],["鲍三娘", 94, 43, 102, 6],["步度根", 80, 60, 90, 61],["蔡琰", 22, 97, 13, 92],["彻里吉", 64, 57, 79, 63],["带来洞主", 64, 53, 65, 65],["董荼那", 85, 44, 90, 38],["朵思大王", 77, 66, 72, 85],["俄何烧戈", 76, 14, 93, 1],["蛾遮塞", 46, 30, 90, 41],["费栈", 53, 47, 87, 54],["骨进", 62, 29, 74, 28],["呼厨泉", 86, 31, 80, 19],["花鬘", 91, 31, 100, 39],["黄乱", 79, 30, 92, 7],["金环三结", 80, 23, 93, 23],["柯吾", 56, 37, 74, 50],["轲比能", 95, 72, 85, 63],["刘豹", 77, 63, 82, 59],["楼班", 81, 37, 93, 48],["芒中", 59, 47, 94, 68],["孟获", 94, 55, 106, 51],["孟优", 63, 22, 84, 26],["迷当大王", 74, 38, 85, 18],["木鹿大王", 81, 7, 87, 48],["潘临", 82, 23, 97, 10],["蹋顿", 104, 43, 100, 74],["土安", 69, 24, 96, 26],["王同", 56, 30, 84, 50],["乌延", 46, 29, 86, 38],["兀突骨", 89, 37, 98, 25],["奚泥", 44, 30, 98, 13],["雅丹", 55, 63, 80, 69],["阎柔", 88, 89, 69, 85],["越吉", 85, 31, 98, 29],["祝融夫人", 97, 29, 104, 36]];const headers = ["野地名将", "统帅", "内政", "勇武", "智谋"];document.body.innerHTML += `<table id="generalTable"><thead><tr>${headers.map((header, index) => `<th onclick="${index > 0 ? 'sortTable(' + index + ')' : ''}">${header}</th>`).join('')}</tr></thead><tbody>${generals.map(general => `<tr>${general.map(cellText => `<td>${cellText}</td>`).join('')}</tr>`).join('')}</tbody></table>`;function sortTable(columnIndex) {const table = document.getElementById("generalTable");const rows = Array.from(table.tBodies[0].rows);const isAscending = table.rows[0].cells[columnIndex].getAttribute('data-order') === 'asc';rows.sort((rowA, rowB) => {const cellA = parseInt(rowA.cells[columnIndex].innerText);const cellB = parseInt(rowB.cells[columnIndex].innerText);return isAscending ? cellB - cellA : cellA - cellB;});rows.forEach(row => table.tBodies[0].appendChild(row));table.rows[0].cells[columnIndex].setAttribute('data-order', isAscending ? 'desc' : 'asc');}</script></body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/89308.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/89308.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/89308.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【记录】Word|Word创建自动编号的多级列表标题样式

文章目录 前言创建方式第一种方法&#xff1a;从“定义多级列表”中直接绑定已有样式第二种方法&#xff1a;通过已有段落创建样式&#xff0c;再绑定补充说明 尾声 前言 这世上荒唐的事情不少&#xff0c;但若说到吊诡&#xff0c;Word中的多级列表样式设定&#xff0c;倒是能…

使用mavros启动多机SITL仿真

使用mavros启动多机SITL仿真 方式1&#xff1a;使用roslaunch一键启动Step1&#xff1a;创建一个新的 ROS 包或放到现有包里Step2&#xff1a;编辑 multi_mavros.launchStep3&#xff1a;构建工作空间并 source 环境Step4&#xff1a;构建工作空间并 source 环境 方式2&#xf…

Flutter 网络栈入门,Dio 与 Retrofit 全面指南

面向多年 iOS 开发者的零阻力上手 写在前面 你在 iOS 项目中也许习惯了 URLSession、Alamofire 或 Moya。 换到 Flutter 后&#xff0c;等价的「组合拳」就是 Dio Retrofit。 本文将带你一次吃透两套库的安装、核心 API、进阶技巧与最佳实践。 1. Dio&#xff1a;Flutter 里的…

工作室考核源码(带后端)

题目内容可更改 下载地址:https://mcwlkj.lanzoub.com/iUF3z300tgfe 如图所示

数字孪生技术为UI前端提供全面支持:实现产品的可视化配置与定制

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 一、引言&#xff1a;数字孪生驱动产品定制的技术革命 在消费升级与工业 4.0 的双重驱动下&a…

通往物理世界自主智能的二元实在论与罗塞塔协议

序章&#xff1a;AI的“两种文化”之争——我们是否在构建错误的“神”&#xff1f; 自诞生以来&#xff0c;人工智能领域始终存在着一场隐秘的“两种文化”之争。一方是符号主义与逻辑的信徒&#xff0c;他们追求可解释、严谨的推理&#xff0c;相信智能的核心在于对世界规则…

探索 AI 系统提示与模型资源库:`system-prompts-and-models-of-ai-tools`

在当今的人工智能领域,系统提示和工具模型的优化与应用对于提升 AI 助手的性能和响应质量至关重要。x1xhlol 开源的 system-prompts-and-models-of-ai-tools 仓库为开发者们提供了一个丰富的资源集合,涵盖了多种 AI 工具的系统提示、工具和模型。 仓库概述 这个仓库包含了超…

城市灯光夜景人像街拍摄影后期Lr调色教程,手机滤镜PS+Lightroom预设下载!

调色教程 “城市灯光夜景人像街拍摄影后期 Lr 调色”&#xff0c;主要是利用 Lightroom 软件&#xff0c;对城市夜景中灯光下的人像街拍照片进行处理。通过调整色彩平衡、明暗对比和细节质感&#xff0c;强化夜景灯光的绚丽感&#xff0c;突出人像主体&#xff0c;同时协调人物…

JavaScript中的call、apply、bind:用法、实现与区别详解(面试常见)

# JavaScript中的call、apply、bind&#xff1a;用法、实现与区别详解## 核心概念 这三个方法都用于改变函数执行时的this指向&#xff0c;是JavaScript中函数上下文操作的核心API。## 1. 基本用法对比### call方法 javascript function.call(thisArg, arg1, arg2, ...)特点&am…

使用vue开发浏览器chrome插件教程,及之间的消息通信

基本介绍 开发浏览器插件&#xff0c;首先需要先了解他的结构&#xff0c;浏览器扩展通常包括以下几个部分 ├── manifest.json ├── package.json ├── vite.config.js ├── src ├── background │ └── index.js ├── content │ └── content.js ├── …

论文笔记(八十八)MLCVNet: Multi-Level Context VoteNet for 3D Object Detection

MLCVNet: Multi-Level Context VoteNet for 3D Object Detection 文章概括摘要I. 引言2. 相关工作2.1. 基于点云的 3D 目标检测2.2. 上下文信息 3. 方法3.1. VoteNet3.2. PPC 模块3.3. OOC 模块3.4. GSC 模块 4. 结果与讨论4.1. 数据集4.2. 训练细节4.3. 与最先进方法的比较4.4…

Redis初识第四期----Hash的命令和应用场景

首先为了区分Redis的键值对存储的key-value&#xff0c;Hash中的键值对称为field-value。 命令 1.Hset Hset key field value [field value] 返回值为设置成功的field-value的个数。 2.Hget Hget key field 返回为value 3.Hexists Hexists key field 判断是否存在&a…

【大数据技术栈】数据管理范畴常用大数据技术栈

一、技术栈分层架构 大数据技术栈通常分为四个核心层级&#xff1a; 数据采集层 负责多源异构数据的实时/批量采集 日志采集&#xff1a; F l u m e Flume Flume、 L o g s t a s h Logstash Logstash消息队列&#xff1a; K a f k a Kafka Kafka、 R a b b i t M Q RabbitMQ …

安全左移(Shift Left Security):软件安全的演进之路

文章目录 一、背景&#xff1a;传统安全的尴尬处境二、安全左移&#xff1a;让安全成为开发的“第一等公民”三、安全左移的关键实施阶段1. 需求阶段&#xff1a;嵌入安全需求建模2. 设计阶段&#xff1a;威胁建模与架构审计3. 编码阶段&#xff1a;安全编码规范与静态分析4. 构…

固定债可以卖call吗

我们都知道如果持有tlt&#xff0c;可以卖call来赚取时间价值&#xff0c;如果我买固定到期的美债而不是etf&#xff0c;有类似的操作吗&#xff0c;我可以卖call吗 以下是关于直接持有固定到期美债并尝试卖出看涨期权的详细分析&#xff1a; 一、直接持有美债与ETF&#xff08…

fish安装node.js环境

为什么强调fish shell&#xff0c;因为fish shell的缘故&#xff0c;不能直接执行node.js官网的命令 好的&#xff0c;您遇到了一个非常典型且重要的问题。请仔细阅读我的分析&#xff0c;这能帮您彻底解决问题。 问题诊断 您看到的所有错误&#xff0c;归根结底有两个核心原…

记一次Ubuntu22安装MongoDB8并同步本地数据过程

1. 效果展示 2. 安装MongoDB 8 根据官方文档https://www.mongodb.com/zh-cn/docs/manual/tutorial/install-mongodb-on-ubuntu/一顿操作即可 2.1 配置微调支持远程访问 修改配置文件,默认/etc/mongod.conf # network interfaces net:port: 27017bindIp: 0.0.0.02.2 新增adm…

HarmonyOS应用开发高级认证知识点梳理 (三)状态管理V2装饰器核心规则

以下是针对HarmonyOS应用开发高级认证备考的‌状态管理V2装饰器核心规则‌知识点系统梳理&#xff1a; 一、核心装饰器分类与功能 1. ‌组件声明装饰器‌ ComponentV2‌ (1)基础定义与限制 功能定位‌ 用于装饰自定义组件&#xff0c;启用V2状态管理能力&#xff0c;需配…

SAP资产记账相关业务成本中心为空的问题

用户在资产记账时&#xff0c;发现字段“成本中心”是空且为灰色的&#xff0c;并没有显示资产对应的成本中心&#xff0c;如下图所示&#xff1a; 首先&#xff0c;关于资产购置记账的相关业务&#xff0c;成本中心要不要显示&#xff1f;其实是可以不显示的&#xff0c;它是来…

智源大会AI安全论坛:深挖风险红线,探讨应对措施

6月7日&#xff0c;在与安远AI联合主办的智源大会“AI安全论坛”上&#xff0c;来自MIT、清华、复旦、人大、智源、多伦多大学、新加坡管理大学、Redwood Research、瑞莱智慧和安远AI 的学者与技术专家同台&#xff0c;以“AI安全”为核心议题&#xff0c;从主旨报告&#xff0…