我得到了这段代码来根据其标题属性对无序列表进行排序。
$('#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 在这里所做的事情?
最佳答案
使用这个:
$(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;
关于javascript - 在 Chrome 中对无序列表的列表项进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9996766/