Javascript-对HTML表进行排序(带有包含数据和时间的列)
我有一个表,可以按升序/降序排序。当我单击列名时,我会按照W3中的示例进行操作 但这不是正确的排序日期(2019年1月6日上午8:15:00)Javascript-对HTML表进行排序(带有包含数据和时间的列),javascript,html,Javascript,Html,我有一个表,可以按升序/降序排序。当我单击列名时,我会按照W3中的示例进行操作 但这不是正确的排序日期(2019年1月6日上午8:15:00) 您是否有其他建议或代码添加到w3schools示例中。w3schools示例比较了两个字符串。因此,它按字母顺序而不是时间顺序比较这两个日期 if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) 您需要将值转换为日期并比较日期值 相关部分: x = rows[i].getEleme
您是否有其他建议或代码添加到w3schools示例中。w3schools示例比较了两个字符串。因此,它按字母顺序而不是时间顺序比较这两个日期
if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase())
您需要将值转换为日期并比较日期值
相关部分:
x = rows[i].getElementsByTagName("TD")[0];
y = rows[i + 1].getElementsByTagName("TD")[0];
var date1 = new Date(x.innerText);
var date2 = new Date(y.innerText);
if (date1 > date2) {
工作示例(基于):
桌子{
边界间距:0;
宽度:100%;
边框:1px实心#ddd;
}
th,td{
文本对齐:左对齐;
填充:16px;
}
tr:n个孩子(偶数){
背景色:#F2F2
}
单击按钮按名称按字母顺序对表格进行排序:
分类
名称
国家
2019年6月1日上午8:15:00
瑞典
2019年6月1日上午6:15:00
英国
2019年6月1日凌晨3:15:30
德国
2019年6月1日上午8:15:00
德国
2019年6月1日晚上8:15:00
意大利
2019年6月1日上午8:15:00
法国
2019年6月1日下午4:15:00
英国
2019年6月2日晚上8:15:30
加拿大
函数sortTable(){
var表,行,切换,i,x,y,shouldSwitch;
table=document.getElementById(“myTable”);
切换=真;
/*做一个循环,循环将持续到
未进行任何切换:*/
while(切换){
//首先说:未进行任何切换:
切换=错误;
行=表。行;
/*循环遍历所有表行(除
首先,它包含表标题):*/
对于(i=1;i<(rows.length-1);i++){
//首先说,不应进行切换:
shouldSwitch=false;
/*获取要比较的两个元素,
一个来自当前行,另一个来自下一行:*/
x=行[i].getElementsByTagName(“TD”)[0];
y=行[i+1].getElementsByTagName(“TD”)[0];
var date1=新日期(x.innerText);
var date2=新日期(y.innerText);
//检查两行是否应切换位置:
如果(日期1>日期2){
//如果是,标记为开关并断开回路:
shouldSwitch=true;
打破
}
}
如果(应切换){
/*如果开关已被标记,则进行更换
并标记开关已完成:*/
行[i].parentNode.insertBefore(行[i+1],行[i]);
切换=真;
}
}
}
请在问题中包含与问题相关的所有代码。请举例说明你所拥有的和你所尝试过的。