開滿天機(jī)
2021-06-15 12:22:48
我想根據(jù)元素的標(biāo)題/描述對列表進(jìn)行排序。根據(jù)第一個詞,分配權(quán)重以稍后定義自定義訂單。從:列表 4 200 中的第三個元素列表 3 200 中的第一個元素列表 3 200 中的第一個元素列表 5 200 中的第四個元素列表 2 200 中的第二個元素列表 2 200 中的第二個元素至:列表 3 200 中的第一個元素列表 3 200 中的第一個元素列表 2 200 中的第二個元素列表 2 200 中的第二個元素列表 4 200 中的第三個元素列表 5 200 中的第四個元素我們未控制的任何標(biāo)題將被分配一個預(yù)定的權(quán)重(最重),以便它出現(xiàn)在最后。var list = $('.list');var listItems = list.children('li').get();$(listItems).each(function() { var $this = $(this); var description, focusDescription; var weight; description = $this.find('span.description a').text(); focusDescription = description.split(' ')[0]; switch (focusDescription) { case 'First': weight = 1; // code block logic break; case 'Second': weight = 2; // code block logic break; case 'Third': weight = 3; // code block logic break; case 'Fourth': weight = 4; // code block logic break; default: weight = 5; // code block logic }});listItems.sort(function(a, b) { // code block logic})$.each(listItems, function(idx, itm) { list.append(itm);});
1 回答

MMMHUHU
TA貢獻(xiàn)1834條經(jīng)驗 獲得超8個贊
您可以通過定義一個 JS 對象來對這些進(jìn)行排序,并將優(yōu)先考慮每個單詞。因此,您將使用此優(yōu)先級作為排序功能的排名。您的 js 代碼將如下所示:
var rank = {
First:0,
Second:1,
Third:2,
Fourth:3,
}
var list = $('.list');
var listItems = list.children('li').get();
listItems.sort(function(a, b) {
return rank[$(a).find('span.description a').text().split(' ')[0]] - rank[$(b).find('span.description a').text().split(' ')[0]]
})
$.each(listItems, function(idx, itm) {
list.append(itm);
});
添加回答
舉報
0/150
提交
取消