javascript - 使用 Jquery 按子项中存在的编号排序父项

标签 javascript jquery html

如果我有 ul li,其中 li 中有一个数字,我怎样才能按这个数字对所有 ul 进行排序(大的应该排在第一位)?

例如我有我无法更改的 html

<ul id="ul-list">
    <li>
        <div class="name">product 1</div>
        <div class="rating">85</div>
    </li>
    <li>
        <div class="name">product 2</div>
        <div class="rating">20</div>
   </li>
    <li>

        <div class="name">product 3</div>
        <div class="rating">95</div>
    </li>
</ul>

我想重新排序该列表,因此产品 3 将排在第一个,因为该产品的评分最高,而产品 2 将排在最后一个,因为该产品的评分最低

最佳答案

您可以转换为数组,对该数组进行排序,清空容器,最后添加排序后的元素数组。

var sorted = $('#ul-list li').toArray().sort(function(a, b) {
  var aValue = $(a).find('.rating')[0].textContent;
  var bValue = $(b).find('.rating')[0].textContent;

  return bValue - aValue;
});


$('#ul-list').empty().append(sorted);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="ul-list">
    <li>
        <div class="name">product 1</div>
        <div class="rating">85</div>
    </li>
    <li>
    <div class="name">product 2</div>
        <div class="rating">20</div>
    </li>
        
    <li>
      <div class="name">product 3</div>
        <div class="rating">95</div>
    </li>
        
</ul>

关于javascript - 使用 Jquery 按子项中存在的编号排序父项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49460315/

相关文章:

javascript - JQuery改变列内文本的颜色

javascript - Jquery 中止来自另一个事件的 ajax 调用

javascript - Bootstrap Modal 效果不佳

javascript - 在 PHP 中检索 JS 数据

javascript - 如何允许用户在 &lt;input type ="file"> 标签中选择任何文件或目录?

javascript - 从您的网站打开 Teamviewer

javascript - 在 $.getJSON 函数期间设置的变量只能在函数内访问

javascript - 无法访问 jquery 中的对象(prevObject?)

jquery - 绝对定位元素在 IE 中消失

javascript - 使用 javascript 隐藏 div,直到按下按钮