Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/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函数自定义排序HTML表_Javascript_Jquery_Sorting_Ecmascript 6_Html Table - Fatal编程技术网

使用javascript函数自定义排序HTML表

使用javascript函数自定义排序HTML表,javascript,jquery,sorting,ecmascript-6,html-table,Javascript,Jquery,Sorting,Ecmascript 6,Html Table,我遵循@charlietfl on给出的答案 这张桌子似乎不适合我 我的代码: var custom_sort=['ABC','MNO','XYZ']; var$rows=$('tr:gt(0)').detach().sort(函数(a,b){ var aSrcIdx=custom_sort.indexOf($(a).find('td:last').text()); var bSrcIdx=custom_sort.indexOf($(b).find('td:last').text()); 返回

我遵循@charlietfl on给出的答案

这张桌子似乎不适合我

我的代码:

var custom_sort=['ABC','MNO','XYZ'];
var$rows=$('tr:gt(0)').detach().sort(函数(a,b){
var aSrcIdx=custom_sort.indexOf($(a).find('td:last').text());
var bSrcIdx=custom_sort.indexOf($(b).find('td:last').text());
返回aSrcIdx>bSrcIdx;
});
$('#mytable')。追加($rows)
表格,td,th{border:1px纯黑色;}
#mytable{
宽度:100%;
边界塌陷:塌陷;
}

身份证件
日期
来源
50
2012-01-01
XYZ
80
2011-07-08
基础知识
94
2013-06-05
MNO
50
2012-01-01
MNO
50
2012-01-01
XYZ
75
2012-01-01
基础知识
const customSort=['ABC','MNO','XYZ'];
常量行=[…$('tr:gt(0)').detach();
const iMax=rows.length*customSort.length;
const sortedRows=[];
for(设i=0;i{
返回$(行).find('td:last').text()==targetValue;
});
如果(targetRowIndex!=-1){
const targetRow=行拼接(targetRowIndex,1)[0];
分拣机推送(targetRow);
}
}
SORTDROWS.push(…行);
$(“#mytable”).append(sortedRows)
表格,td,th{border:1px纯黑色;}
#mytable{
宽度:100%;
边界塌陷:塌陷;
}

身份证件
日期
来源
50
2012-01-01
XYZ
80
2011-07-08
基础知识
94
2013-06-05
MNO
50
2012-01-01
MNO
50
2012-01-01
XYZ
75
2012-01-01
基础知识

您只需更改
返回aSrcIdx-bSrcIdx

因为您需要从比较器函数返回-1,0,1,而不是布尔值

var custom_sort=['ABC','MNO','XYZ'];
var$rows=$('tr:gt(0)').detach().sort(函数(a,b){
var aSrcIdx=custom_sort.indexOf($(a).find('td:last').text());
var bSrcIdx=custom_sort.indexOf($(b).find('td:last').text());
返回aSrcIdx-bSrcIdx;
});
$('#mytable')。追加($rows)
表格,td,th{border:1px纯黑色;}
#mytable{
宽度:100%;
边界塌陷:塌陷;
}

身份证件
日期
来源
50
2012-01-01
XYZ
80
2011-07-08
基础知识
94
2013-06-05
MNO
50
2012-01-01
MNO
50
2012-01-01
XYZ
75
2012-01-01
基础知识

使用一些库,这是一个太常见的问题,不必从头开始编写。感谢您的回复。有没有办法将订单设置为ABC,MNO,XYZ,ABC,MNO,XYZ
?我已经更新了答案。它现在应该做你想要的。谢谢你的回复。有没有办法将订单设置为ABC、MNO、XYZ、ABC、MNO、XYZ
该列是否只包含3个可能的值?是的,它将只包含这3个可能的值