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>