Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
Jquery 如何使用数组索引对无序列表进行排序_Jquery_Arrays_Sorting_Custom Data Attribute - Fatal编程技术网

Jquery 如何使用数组索引对无序列表进行排序

Jquery 如何使用数组索引对无序列表进行排序,jquery,arrays,sorting,custom-data-attribute,Jquery,Arrays,Sorting,Custom Data Attribute,我正在尝试使用数据属性对列表进行重新排序,请参见下面的代码 <ul> <li data-block="block1">Some Text...</li> <li data-block="block2">Some Text...</li> <li data-block="block3">Some Text...</li> <li data-block="block4">Some Text...</

我正在尝试使用数据属性对列表进行重新排序,请参见下面的代码

<ul>
<li data-block="block1">Some Text...</li>
<li data-block="block2">Some Text...</li>
<li data-block="block3">Some Text...</li>
<li data-block="block4">Some Text...</li>
</ul>
因此,我需要按照如下数组索引的方式对列表进行排序/重新排序

<ul>
<li data-block="block2">Some Text...</li>
<li data-block="block1">Some Text...</li>
<li data-block="block4">Some Text...</li>
<li data-block="block3">Some Text...</li>
</ul>
  • 一些文本
  • 一些文本
  • 一些文本
  • 一些文本
请帮助我获得正确的解决方案。

您可以使用对元素进行排序

var值=[“区块2”、“区块1”、“区块4”、“区块3”];
//使用数据属性获取所有li
var$li=$('li[数据块]);
//根据索引对它们进行排序
$li.sort(函数(a,b){
返回值.indexOf($(a).data('block'))-values.indexOf($(b).data('block'));
})
//通过追加回订单的父级来更新订单
.appendTo($li.parent())

  • 一些文本…1
  • 一些文本…2
  • 一些文本…3
  • 一些文本…4

您可以利用
.html()
.map()

var值=数组(“块2”、“块1”、“块4”、“块3”);
$(“ul”).html(values.map(函数(val){return$(“[data block=“+val+”]))))

  • 一些文本…1
  • 一些文本…2
  • 一些文本…3
  • 一些文本…4

很抱歉,我的回复延迟了,它解决了我的问题。谢谢。@AbdullahAhamed:很高兴能帮上忙
<ul>
<li data-block="block2">Some Text...</li>
<li data-block="block1">Some Text...</li>
<li data-block="block4">Some Text...</li>
<li data-block="block3">Some Text...</li>
</ul>