javascript - 如何根据 div 内部类的值对 div 进行排序

标签 javascript jquery

我的html是这样的:

<div class="comment_div">
      <span class="upvotes">4</span>
</div>

<div class="comment_div">
      <span class="upvotes">7</span>
</div>

<div class="comment_div">
      <span class="upvotes">2</span>
</div>

.upvotes的值是动态的,所以我希望js/jquery根据当时的值对div进行排序。我该怎么做?

最佳答案

您可以执行以下操作:

  1. 将所有 div 选择到 JQuery 对象中。
  2. 调用 .get()在 JQuery 对象上获取 div 数组。
  3. 使用Array.prototype.sort()函数对数组中的 div 进行排序。
  4. 通过将 div 数组传递给 $() 创建另一个 JQuery 对象.

代码:

var divs = $('.comment_div').get();
divs.sort(function(div1, div2) {
    function getValue(div) { return parseInt($(div).children('span:first').text(), 10); }
    var val1 = getValue(div1), val2 = getValue(div2);
    return (val1 > val2) ? 1 : ((val1 < val2) ? -1 : 0);
});
var $sortedDivs = $(divs);

jsfiddle

注释:

  1. JQuery 有一个 .sort() 函数,但没有文档记录,因此最好不要使用它。
  2. 我假设这些值是数字,应该按数字排序,因此您需要将它们转换为数字,否则您会将它们作为字符串排序。

关于javascript - 如何根据 div 内部类的值对 div 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42356389/

相关文章:

javascript - 如何获取从特定日期/时间开始并每小时倒计时的倒计时器

javascript - 在 Visual Studio 中将 socket.io (node.js) 服务器与 Cordova 应用程序结合使用

javascript - 使用 Angular 标记列表中的修改元素

javascript - 从 express 中的路由文件夹访问公共(public)静态文件

jquery - Z-indexing 和 Css Floats 可以在砌体中使用吗?

jquery - 有什么方法可以使用jinja2和flask形式而不是ajax和jquery或两者都使用?

javascript - 如何使用 tweenJS 使位图移动到某些点

java - Primefaces JSF 多次打开对话框会缓慢增加浏览器内存

javascript - md-sidenav toggle() 位于 md-toolbar 之上

jquery - 使用 jQuery 将 span 标签添加到超链接内的文本