Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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根据id属性对列表项进行排序?_Javascript_Jquery_Html_Sorting_Attributes - Fatal编程技术网

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

Javascript 如何使用jquery根据id属性对列表项进行排序?,javascript,jquery,html,sorting,attributes,Javascript,Jquery,Html,Sorting,Attributes,您好,所以我有这个问题,我使用magento和我的我找不到一个地方如何切换我的标签的位置,所以我认为JQuery可以在手。这就是我举的一个例子 <li id="tab-4"> <li id="tab-3"> <li id="tab-2"> <li id="tab-1"> 我需要做到这一点 <li id="tab-1"> <li id="tab-2"> <li id="tab-3"> <li id

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

<li id="tab-4">
<li id="tab-3">
<li id="tab-2">
<li id="tab-1">
  • 我需要做到这一点

    <li id="tab-1">
    <li id="tab-2">
    <li id="tab-3">
    <li id="tab-4">
    

  • 有没有快速的方法?或者我必须一个接一个地做?

    我猜你周围有一个
  • ul=$('ul');//您的父ul元素
    ul.children().each(函数{ul.prepend(li)})
    
    
    • 4
    • 3
    • 2
    • 1

    我想你周围有一个
  • ul=$('ul');//您的父ul元素
    ul.children().each(函数{ul.prepend(li)})
    
    
    • 4
    • 3
    • 2
    • 1
    纯JS解决方案

    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))
    
    
    
  • 4
  • 3
  • 2
  • 1
  • 纯JS解决方案

    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))
    
    
    
  • 4
  • 3
  • 2
  • 1

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

    $(“ul li”).sort(函数(a,b){
    if(a.id.子串(4,5)
    
    
    
    • 4
    • 1
    • 3
    • 2

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

    $(“ul li”).sort(函数(a,b){
    if(a.id.子串(4,5)
    
    
    
    • 4
    • 1
    • 3
    • 2
    $(“.list>li”).detach().sort(函数(a,b){
    返回+a.id.replace(“tab-”,“”)-b.id.replace(“tab-”,“”);
    }).附录(“ul清单”)
    
    
    
    • 3
    • 4
    • 2
    • 1
    $(“.list>li”).detach().sort(函数(a,b){
    返回+a.id.replace(“tab-”,“”)-b.id.replace(“tab-”,“”);
    }).附录(“ul清单”)
    
    
    
    • 3
    • 4
    • 2
    • 1
    还有,您较慢的方法在哪里?您是在尝试更新生成此页面的magento代码,还是在magento已经呈现页面后,您正在查看或使用一个函数来执行此操作?我正在尝试在之后执行此操作,因为我使用的是Porto模板和自定义选项卡,我甚至找不到如何禁用默认选项卡。所以在页面之后切换会更容易load@PovilasJasilionis如果任何答案解决了您的问题,您应该将其标记为答案,以告知其他用户解决方案是什么,你较慢的方法在哪里?你是在尝试更新生成此页面的magento代码,还是在magento已经呈现页面后,你正在寻找或使用一个函数来执行此操作?我正在尝试这样做,因为我使用的是Porto模板和自定义选项卡,我甚至找不到如何禁用默认选项卡。所以在页面之后切换会更容易load@PovilasJasilionis如果有任何答案解决了您的问题,您应该将其标记为答案,以告知其他用户解决方案是什么,如果您将未使用的
    i
    变量替换为
    \u
    ,效果会更好。如果您将未使用的
    i
    替换,效果会更好带有
    的变量