因此,我尝试按照每个<li>中子元素的data-id属性对一个无序列表进行排序。如何将此元素作为目标,以便按其值排序?
下面是我当前的代码:
$("#sort_popularity").live("click", function() {
var listitems = list.children('li').get();
listitems.sort(function(a, b) {
var compA = $(a).("#subject_popularity");
var compB = $(b).("#subject_popularity");
return compA < compB;
});
$.each(listitems, function(index, item) {
list.append(item); // (List is defined elsewhere in my code)
});
});HTML:
<a href="#" id="sort_popularity">Sort</a>
<ul>
<li><span id="popularity" data-id="10">10</li>
<li><span id="popularity" data-id="20">20</li>
<li><span id="popularity" data-id="5">5</li>
</ul>发布于 2012-06-27 09:16:01
// for ASC.
var lis = $('ul li');
lis.sort(function(a, b) {
return parseInt($('span', a).data('id'), 10) > parseInt( $('span', b).data('id'), 10);
});
$('ul').html(lis);和
// for DESC.
var lis = $('ul li');
lis.sort(function(a, b) {
return parseInt( $('span', a).data('id'), 10) < parseInt( $('span', b).data('id'), 10);
});
$('ul').html(lis);备注
更改span的id%s,多个span没有相同的id,并关闭您的span标签(可能是打字错误)。
https://stackoverflow.com/questions/11218043
复制相似问题