javascript - 使用 Javascript 对 html 表进行数字排序 - 10 以上不起作用
问题描述
下面的 JS 函数仅根据 td 中的第一个数字对 myTable 中的 td:s 进行排序。如何根据 td 中的所有数字对其进行排序(从低到高排序;例如 1、5、15 而不是 1、15、5)?
function sortTable() {
var table, rows, switching, i, x, y, shouldSwitch;
table = document.getElementById("myTable");
switching = true;
while (switching) {
switching = false;
rows = table.rows;
for (i = 1; i < (rows.length - 1); i++) {
shouldSwitch = false;
x = rows[i].getElementsByTagName("TD")[0];
y = rows[i + 1].getElementsByTagName("TD")[0];
if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) {
shouldSwitch = true;
break;
}
}
if (shouldSwitch) {
rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
switching = true;
}
}
}
解决方案
用于parseInt()
将字符串转换为整数。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt
所以,比较应该像 -
if (parseInt(x.innerHTML.toLowerCase()) > parseInt(y.innerHTML.toLowerCase())) {
推荐阅读
- flutter - 从 Firestore 集合中获取数据 snapshot.hasdata 返回 Null
- python-3.x - 如何添加分页:super()
- html - HTML/CSS 解决方法 menu-toggle 仅适用于第一个元素
- node.js - 在 $inc 中使用 $sub 并引用集合字段
- ios - xcode中不能选择Development Team,只显示Personal Team
- python - 根据其他行选择熊猫数据框行
- php - mySQL 查询返回根据'LIMIT' 使用而改变| 数据库
- angular - 为什么我的 ng2-chart 数据没有正确缩放?
- python - 如何从 Python 中的另一个文件动态导入某些内容
- php - Laravel如何从控制器获取数据到事件监听器?