Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Jquery按子项中存在的编号排序父项_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript 使用Jquery按子项中存在的编号排序父项,javascript,jquery,html,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> <

如果我有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>
  • 产品1 85
  • 产品2 20
  • 产品3 95

我想重新排序该列表,这样产品3将是第一个,因为该项具有最高评级,产品2将是最后一个,因为该产品具有最低评级。您可以转换为数组,对该数组进行排序,清空容器,最后添加已排序的元素数组

var sorted=$('#ul list li').toArray().sort(函数(a,b){
var aValue=$(a).find('.rating')[0].textContent;
var bValue=$(b).find('.rating')[0].textContent;
返回bValue-aValue;
});
$('#ul list').empty().append(排序)

  • 产品1 85
  • 产品2 20
  • 产品3 95

您可能想考虑使用<代码> jQuery 添加存储该值的数据属性。然后,您可以在
JavaScript
中创建一个函数:

1) 使用jQuery获取此存储的号码

2) 将其添加到数组中

3) 使用方法对数组进行排序,然后

4) 使用jQuery按所需顺序发布结果

如果要在HTML中存储数据,可以这样做:

$("your selector").attr("data-value", your value);

可能对你的html不正确感兴趣。有一些没有内容的
  • 。另外,在构建html时最好进行排序,无论是使用php还是任何其他后端或数据支持。谢谢,这是正确的。当您的答案出现时,我正在为此启动一个Plunker,所以我将您的代码放入了我的Plunker中: