Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.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_Sorting_Filter_Html Table - Fatal编程技术网

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使命的一部分。如果你需要的是编程服务,我建议你雇一个程序员。