我得到了这个代码,用于对有关其title属性的无序列表进行排序。
$('#list li').sort(function(a,b) {
return $(a).attr('title') < $(b).attr('title');
}).appendTo('#list');
它在Firefox和IE上运行良好,但只要列表元素数超过10,就会在Chrome上失败(参见http://jsbin.com/atoput/4)
是否有更好/更容易/更快速的方式对动态元素进行排序,你甚至可以解释一下Chrome在这里做了什么?
答案 0 :(得分:4)
使用此:
$(document).ready(function() {
var list = $('#list');
var items = list.children('li').get();
items.sort(function(a, b) {
var A = a.title;
var B = b.title;
return (A < B) ? -1 : (A > B) ? 1 : 0;
});
$.each(items, function(idx, itm) { list.append(itm); });
});
可以看到预览here。
如果您希望列表按降序排序,请切换标志:
return (A > B) ? -1 : (A < B) ? 1 : 0;