如何使用Javascript按字母顺序区分大小写对表格进行排序
How do I sort a table with Javascript in alphabetical order with case sensitivity?
没有jQuery答案,因为我在这个网站上没有使用它。
我有一张通用表格
<tbody><tr><td>2</td><td><a href="http://www.anime-planet.com/anime/ah-my-goddess">Ah! My Goddess</a></td></tr></tbody>
我需要访问"a"元素的内部文本,但我不确定如何做到这一点。我想使用querySelectorAll,但显然,因为表是由javascript通过ajax生成的,所以我无法做到这一点。这让我不确定如何访问元素,更不用说对其文本内容进行排序了,比如"啊!我的女神。需要注意的是,还有更多类似这样的表行,具有相同的基本模式。
如果不使用jQuery,您可以尝试使用它所基于的函数的根。例如,将选择器替换为:
document.querySelectorAll('td').textContent
我假设您可以通过id:引用该表
var t = document.getElementById(/*table id*/);
var d = t.tBodies[0].rows; // is an HTMLCollection, kinda like an array
d = [...t.tBodies[0].rows]; // converts it into an array of rows
一旦它在数组中,就可以对行执行类似数组的操作,比如sort()
它们是
现在,查看第一行d[0]
,并假设锚点总是在第二列中,该锚点可以称为:
var a = d[0].cells[1].getElementsByTagName('a')[0];
打开/关闭标签内的文本为:
a.innerHTML; // In this case: 'Ah! My Goddess'
把这些放在一起,一种排序(按字母顺序)可能是:
var byAnchorText = (a, b) => a.cells[1].getElementsByTagName('a')[0].innerHTML - b.cells[1].getElementsByTagName('a')[0].innerHTML;
var t = document.getElementById(/*table id*/);
Array.sort.apply(t.tBodies[0].rows, byAnchorText);
或者类似的东西,你可以根据自己的意愿进行修复。
相关文章:
- 我应该使用Ng提交还是点击表格
- CSS表格:从列平移到整个表格宽度
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 将HTML表格导出到excel时,无法将数据加载到excel文件中
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 滚动和表格
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- Google电子表格getValue([cell containing ])不返回制表符
- 打印预览没有应用程序页眉和页脚的html表格
- 区分电子表格中的空单元格和0值
- 使用外部数据创建仪表板(谷歌电子表格)-JavaScript
- 量角器:读取表格内容
- 如何使用Google Sheets API+Javascript阅读电子表格
- 将HTML表格导出到带有文本和图像的excel中
- 如何将jQuery/AAJAX结果放入表格单元格
- 有没有办法限制Meteor-alded表格包中已发布的字段
- 谷歌电子表格的自定义xml解析功能
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- 如何在单击按钮时显示2行1列的表格
- 如何使用Javascript按字母顺序区分大小写对表格进行排序