仅使用JavaScript进行表排序
如何以简单的方式使此函数适用于第次单击时有3列的表?当用户再次单击时,表应按子代排序。不允许使用jQuery或其他库仅使用JavaScript进行表排序,javascript,html,onclick,Javascript,Html,Onclick,如何以简单的方式使此函数适用于第次单击时有3列的表?当用户再次单击时,表应按子代排序。不允许使用jQuery或其他库 function sortData() { var tableData = document.getElementById('data_table').getElementsByTagName('tbody').item(0); var rowData = tableData.getElementsByTagName('tr'); for (var i =
function sortData() {
var tableData = document.getElementById('data_table').getElementsByTagName('tbody').item(0);
var rowData = tableData.getElementsByTagName('tr');
for (var i = 0; i < rowData.length - 1; i++) {
for (var j = 0; j < rowData.length - (i + 1); j++) {
if (parseInt(rowData.item(j).getElementsByTagName('td').item(0).innerHTML) > parseInt(rowData.item(j + 1).getElementsByTagName('td').item(0).innerHTML)) {
tableData.insertBefore(rowData.item(j + 1), rowData.item(j));
}
}
}
}
函数sortData(){
var tableData=document.getElementById('data_table').getElementsByTagName('tbody')。项(0);
var rowData=tableData.getElementsByTagName('tr');
对于(var i=0;iparseInt(rowData.item(j+1).getElementsByTagName('td').item(0).innerHTML)){
tableData.insertBefore(rowData.item(j+1),rowData.item(j));
}
}
}
}
我在1000年前,甚至在jquery出现之前,就编写了这个排序表的函数(我想):
函数tableSort(表、列、initrow、lastrow、降序){
var值1、var值2;
var tbl=document.getElementById(表);
对于(i=initRow;ivalue2){x=j;}
}
}
tbl.tBodies[0].insertBefore(tbl.rows[x],tbl.rows[i]);
}
}
table:要排序的表的id column:要排序的列的索引 initrow:从哪一行开始排序 lastrow:到哪一列完成排序 降序:排序方向(布尔值,您可以在其他地方设置并切换)
例如:
<table id='mytable'>
<th>my first column</th>
<th desc='false' onclick='tableSort("myTable", 2, 1, 10, this.desc)'>my second column</th>
<tbody> <!-- important!!!! -->
<tr>... etc ...</tr>
</tbody>
</table>
我的第一专栏
我的第二专栏
... 等
我建议您运行jQuery插件:dataTable。它在对表进行排序方面非常有用,并添加了将来可能需要的功能:我希望它能有所帮助:)链接到这里:
<table id='mytable'>
<th>my first column</th>
<th desc='false' onclick='tableSort("myTable", 2, 1, 10, this.desc)'>my second column</th>
<tbody> <!-- important!!!! -->
<tr>... etc ...</tr>
</tbody>
</table>