首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jquery根据id属性对列表项进行排序?

如何使用jquery根据id属性对列表项进行排序?
EN

Stack Overflow用户
提问于 2017-02-17 21:44:13
回答 4查看 1.1K关注 0票数 1

你好,所以我有这个问题,我使用magento和我的我找不到一个地方如何切换我的标签在适当的位置,所以我认为JQuery可以在手中。这是我举的一个例子

代码语言:javascript
复制
<li id="tab-4">
<li id="tab-3">
<li id="tab-2">
<li id="tab-1">

我要做的就是

代码语言:javascript
复制
<li id="tab-1">
<li id="tab-2">
<li id="tab-3">
<li id="tab-4">

有没有一种快速的方法呢?还是我得一个接一个地做?

EN

回答 4

Stack Overflow用户

发布于 2017-02-17 21:47:12

我猜你身边有一个<ul> <li>

代码语言:javascript
复制
ul = $('ul'); // your parent ul element
ul.children().each(function(_,li){ul.prepend(li)})
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li id="tab-4">4</li>
<li id="tab-3">3</li>
<li id="tab-2">2</li>
<li id="tab-1">1</li>
</ul>

票数 6
EN

Stack Overflow用户

发布于 2017-02-17 21:52:10

纯JS解决方案。

代码语言:javascript
复制
var a = document.getElementsByTagName('li');
var b = document.getElementById('list');
var arr = [];

Array.from(a).forEach(v => arr.push(v));
arr.reverse().forEach(v => b.append(v));
代码语言:javascript
复制
<ul id='list'>
  <li id="tab-4">4</li>
  <li id="tab-3">3</li>
  <li id="tab-2">2</li>
  <li id="tab-1">1</li>
</ul>

票数 1
EN

Stack Overflow用户

发布于 2017-02-17 22:58:48

此外,对于解决方案的工作(实际排序),无论初始顺序如何,您可以使用sort()append,如下所示:

代码语言:javascript
复制
$("ul li").sort(function(a,b){
    if(a.id.substring(4, 5) < b.id.substring(4, 5)) {
        return -1;
    } else {
        return 1;
    }
}).each(function() { $('ul').append(this);});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li id="tab-4">4</li>
  <li id="tab-1">1</li>
  <li id="tab-3">3</li>
  <li id="tab-2">2</li>
</ul>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42299524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档