javascript:当 div 发生变化时如何排序?

标签 javascript jquery

我正在尝试对用户列表进行排序,其中用户经常更改 (#userList>div)

sortUsersAZ = function() {
  var $divs = $('#userList>div');
  var alphabeticallyOrderedDivs = $divs.sort(function (a, b) {
    return $(a).data('username') > $(b).data('username');
  });
  $('#userList').html(alphabeticallyOrderedDivs);
};

它是随机工作的。似乎当#userList>div更改时,排序功能停止

有什么想法吗?

最佳答案

尝试重构您的“排序”功能。我认为它必须类似于以下内容:

var alphabeticallyOrderedDivs = $divs.sort(function(a, b) {
  var nameA = $(a).data('username').toUpperCase(); // ignore upper and lowercase
  var nameB = $(b).data('username').toUpperCase(); // ignore upper and lowercase

  if (nameA < nameB) { return -1; }
  if (nameA > nameB) { return 1; }

  // names must be equal
  return 0;
})

请随时查看reference .

关于javascript:当 div 发生变化时如何排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52185330/

相关文章:

javascript - 单击一个元素以删除其他元素类

jquery - Rails4 - 如何动态设置div 的背景图像?

javascript - 回调解决未处理的promise,为什么?

javascript - 滚动导航棒到顶部

JavaScript 输入验证

Javascript 与 window.open 链接

javascript - John Resig Micro 模板错误

javascript - 允许用户将项目放置在循环内的两个不同的可放置区域中

javascript - 如何检测窗外的 MouseUp 事件?

javascript - 使用 jQuery 更改 div 的数据深度属性