javascript - 按字母顺序对 DIV 进行排序而不销毁和重新创建它们?

标签 javascript jquery

我希望能够通过单击按钮对我页面上的一堆 div 元素进行排序。

都是简单的文字内容,例如:

<div class='sortme'>
    CCC
</div>
<div class='sortme'>
    AAA
</div>
<div class='sortme'>
    BBB
</div>
<div class='sortme'>
    DDD
</div>

当用户点击一个按钮时,它们应该按字母顺序重新排列。显然有很多方法可以做到这一点,最明显的是我们可以将所有内容放入一个数组中,对数组进行排序并基于此重新创建 HTML。

这是此类解决方案的示例:

http://jsfiddle.net/hibbard_eu/C2heg/

但是,如果已经使用了很多代码,这就不太合适了,我希望能够简单地移动 div 而不会做任何破坏性的事情。这可能吗?

最佳答案

  1. sort()对元素数组进行排序
  2. appendTo() 重新附加(在它们的排序状态)

$('.sortme').sort(function(a, b) {
  if (a.textContent < b.textContent) {
    return -1;
  } else {
    return 1;
  }
}).appendTo('body');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class='sortme'>
  CCC
</div>
<div class='sortme'>
  AAA
</div>
<div class='sortme'>
  BBB
</div>
<div class='sortme'>
  DDD
</div>

关于javascript - 按字母顺序对 DIV 进行排序而不销毁和重新创建它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31266660/

相关文章:

javascript - Polymer如何使用Core-TransitionEnd

javascript - Charts.js - 如何为每个数据集设置自定义工具提示文本

javascript - 为什么自调用 JavaScript 函数内的 jQuery document.ready 会调用在不同作用域函数中定义的函数?

javascript - 在 AngularJS 中加载部分 html 文件

jquery - 如何使用 Jquery Mobile 和 Coldfusion8 的主题标签链接来避免 "invalid construct"错误?

javascript - 正则表达式删除 [] 和之间的所有项目

javascript - 滚动到 div 内的底部会触发警报(纯 JavaScript)

javascript - 如何让画廊自动移动

javascript - 查看 ContentEditable div 是否有焦点

javascript - i18next 从 json 文件加载翻译