Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅使用JavaScript进行表排序_Javascript_Html_Onclick - Fatal编程技术网

仅使用JavaScript进行表排序

仅使用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 =

如何以简单的方式使此函数适用于第次单击时有3列的表?当用户再次单击时,表应按子代排序。不允许使用jQuery或其他库

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>