在HTML中,我们可以使用JavaScript或者jQuery来实现明细的排序,下面我将详细介绍如何使用这两种方法来实现这个功能。
使用JavaScript实现明细排序
1、我们需要在HTML中创建一个表格,并在每个单元格中添加一个排序号。
<table id="myTable"> <tr> <th onclick="sortTable(0)">排序号</th> <th onclick="sortTable(1)">姓名</th> <th onclick="sortTable(2)">年龄</th> </tr> <tr> <td>1</td> <td>张三</td> <td>25</td> </tr> <tr> <td>3</td> <td>李四</td> <td>30</td> </tr> <tr> <td>2</td> <td>王五</td> <td>28</td> </tr> </table>
2、接下来,我们需要编写一个JavaScript函数来对表格进行排序,在这个函数中,我们将获取当前点击的列的索引,并根据该索引对表格进行排序。
function sortTable(n) { var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0; table = document.getElementById("myTable"); switching = true; dir = "asc"; while (switching) { switching = false; rows = table.rows; for (i = 1; i < (rows.length 1); i++) { shouldSwitch = false; x = rows[i].getElementsByTagName("TD")[n]; y = rows[i + 1].getElementsByTagName("TD")[n]; if (dir == "asc") { if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { shouldSwitch = true; break; } } else if (dir == "desc") { if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { shouldSwitch = true; break; } } } if (shouldSwitch) { rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; switchcount++; } else { if (switchcount == 0 && dir == "asc") { dir = "desc"; switching = true; } } } }
使用jQuery实现明细排序
1、我们需要在HTML中创建一个表格,并在每个单元格中添加一个排序号。
<table id="myTable"> <tr> <th class="sortable">排序号</th> <th class="sortable">姓名</th> <th class="sortable">年龄</th> </tr> <tr> <td>1</td> <td>张三</td> <td>25</td> </tr> <tr> <td>3</td> <td>李四</td> <td>30</td> </tr> <tr> <td>2</td> <td>王五</td> <td>28</td> </tr> </table>
2、接下来,我们需要引入jQuery库,并编写一个jQuery函数来对表格进行排序,在这个函数中,我们将获取当前点击的列的索引,并根据该索引对表格进行排序。
$(document).ready(function() { $("th.sortable").click(function() { var table = $(this).parents("table").eq(0); var rows = table.find("tr:gt(0)").toArray().sort(compare($(this).index())); this.asc = !this.asc; if (!this.asc) { rows = rows.reverse(); } for (var i = 0; i < rows.length; i++) { table.append(rows[i]); } }); });
function compare(index) { return function(a, b) { var valA = getCellValue(a, index), valB = getCellValue(b, index); return $.isNumeric(valA) && $.isNumeric(valB) ? valA valB : valA.toString().localeCompare(valB); } } function getCellValue(row, index){ return $(row).children("td").eq(index).text(); } function sortTable() { var table = document.getElementById("myTable"); var rows = table.rows; var switching = true; while (switching) { switching = false; for (var i = 1; i < (rows.length 1); i++) { if (rows[i].className != "sorted" && rows[i + 1].className != "sorted") { var shouldSwitch = false; var a = rows[i].getElementsByTagName("TD"); var b = rows[i + 1].getElementsByTagName("TD"); for (var j = 0; j < a.length; j++) { if (a[j] && a[j].innerHTML.toLowerCase() > b[j].innerHTML.toLowerCase()) { shouldSwitch= true; break; } } if (shouldSwitch) { rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); switching = true; break; } } } } } function addClass(row) { row.className += " sorted"; } setInterval(function(){ sortTable(); },500); window.onload=function(){ var lastRowIndex=table.rows.length-1; for(var i=0;i<lastRowIndex;i++){ addClass(table.rows[i]); } } var ths = document.getElementsByTagName('th'); for (var i=0;i<ths.length;i++){ ths[i].addEventListener('click',function(){ this.asc = this.asc==false?true:false; sortTable(); },false); } } $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").click(function() { $(this).toggleClass("sorted"); sortTable(); }); }); $(document).ready(function() { $("th").
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/394394.html