Javascript 基于类名对表行进行分组
我希望能够按类名对表中的行进行排序,以便所有选择了类Javascript 基于类名对表行进行分组,javascript,html,sorting,filter,html-table,Javascript,Html,Sorting,Filter,Html Table,我希望能够按类名对表中的行进行排序,以便所有选择了类的行都显示在第一位,被拒绝的行显示在最后 为了澄清,我想改变这一点 <table> <tbody> <tr><td><span class="selected">WAHEED</span></td></tr> <tr><td><span class="selected">DON</span
的行都显示在第一位,被拒绝的行显示在最后
为了澄清,我想改变这一点
<table>
<tbody>
<tr><td><span class="selected">WAHEED</span></td></tr>
<tr><td><span class="selected">DON</span></td></tr>
<tr><td><span class="rejected">JACK</span></td></tr>
<tr><td><span class="selected">MARK</span></td></tr>
<tr><td><span class="rejected">GATEES</span></td></tr>
</tbody>
</table>
瓦希德
大学教师
杰克
做记号
盖茨
变成这样:
<table>
<tbody>
<tr><td><span class="selected">WAHEED</span></td></tr>
<tr><td><span class="selected">MARK</span></td></tr>
<tr><td><span class="selected">DON</span></td></tr>
<tr><td><span class="rejected">JACK</span></td></tr>
<tr><td><span class="rejected">GATEES</span></td></tr>
</tbody>
</table>
瓦希德
做记号
大学教师
杰克
盖茨
注意两个代码样本之间顺序的变化。
你知道我怎样才能做到这一点吗?你的意思是这样的吗
var people, asc1 = 1,
asc2 = 1,
asc3 = 1;
window.onload = function () {
people = document.getElementById("people");
}
function sort_table(tbody, col, asc) {
var rows = tbody.rows,
rlen = rows.length,
arr = new Array(),
i, j, cells, clen;
// fill the array with values from the table
for (i = 0; i < rlen; i++) {
cells = rows[i].cells;
clen = cells.length;
arr[i] = new Array();
for (j = 0; j < clen; j++) {
arr[i][j] = cells[j].innerHTML;
}
}
// sort the array by the specified column number (col) and order (asc)
arr.sort(function (a, b) {
return (a[col] == b[col]) ? 0 : ((a[col] > b[col]) ? asc : -1 * asc);
});
// replace existing rows with new rows created from the sorted array
for (i = 0; i < rlen; i++) {
rows[i].innerHTML = "<td>" + arr[i].join("</td><td>") + "</td>";
}
}
var人,asc1=1,
asc2=1,
asc3=1;
window.onload=函数(){
people=document.getElementById(“people”);
}
函数排序表(tbody、col、asc){
var rows=tbody.rows,
rlen=行数。长度,
arr=新数组(),
i、 j,细胞,clen;
//用表中的值填充数组
对于(i=0;ib[col])?asc:-1*asc);
});
//用从排序数组创建的新行替换现有行
对于(i=0;i
这应该可以做到:
var rows=document.querySelectorAll('table.sorted tr');
对于(i=0;i
1.瓦希德
2.大学教师
3.杰克
4.做记号
5.盖茨
到目前为止,您尝试了什么?如果您没有尝试过任何东西,那么我无法帮助您,因为您的源代码除了没有编写任何东西之外没有任何具体问题。我想知道如何才能做到这一点,然后只有我可以尝试。@NewToJS请在这个问题与我的问题类似后再看这个问题:下面的答案告诉您如何“如何使用类名对表进行排序”现在,这取决于你如何将其应用到你现有的源代码中。不,我希望像所有男生一样在一个地方,女生一样在一个地方<代码>按类名排序
一旦我需要类似的东西,请看这个问题:太棒了,让我试试,我希望它对我有用@请注意问题中的HTML
代码有一个错误:
标记以
开头。这将使您尝试的任何解决方案失败,因为您的表上没有有效的
。虽然有些浏览器(例如Chrome浏览器)在
没有有效的
时会自动添加一个。但并非所有浏览器都是如此,不要依赖它。如果我需要类似的内容,请在回复后查看此问题。我如何才能做到这一点?:@Andrei@LyndaCarter我提供的答案是为了可读性而特意编写的,因此您可以理解它的逻辑并轻松地在自己的应用程序中实现它。StackOverflow的任务是帮助程序员提高编码技能,更好地理解编码原理。提供免费编程服务不是SO使命的一部分。如果你需要的是编程服务,我建议你雇一个程序员。