javascript - 在 Chrome 中对无序列表的列表项进行排序

标签 javascript jquery google-chrome sorting

我得到了这段代码来根据其标题属性对无序列表进行排序。

$('#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/

相关文章:

javascript - document.referrer 在 safari 中不起作用?

javascript - google-map-react 使用多个标记使 map 居中

jQuery 仅在提交时验证规则

javascript - 标题中的多个按钮

javascript - Bootstrap 验证后无法将 Bootstrap 表单从 View 发送到 Controller

javascript - Angular : Conditional element in DOM?

javascript - 带触摸功能的 slider

html - TD 中的宽度与 colspan 不工作(Chrome)

javascript - Chrome 扩展消息发送时页面重新加载?

html - 在 Firefox 和 Chrome 中正确实现 CSS Grid