Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 在不排序嵌套列表的情况下对li项目内的定位点进行排序_Jquery_Sorting_Anchor_Nested Lists - Fatal编程技术网

Jquery 在不排序嵌套列表的情况下对li项目内的定位点进行排序

Jquery 在不排序嵌套列表的情况下对li项目内的定位点进行排序,jquery,sorting,anchor,nested-lists,Jquery,Sorting,Anchor,Nested Lists,我正在对一个列表进行排序,该列表如下所示: <ul class = "demoOne"> <li><a href="http://somelink.com">Some text</a></li> <li><a href="http://somelink.com">Some more text</a> <ul> <li><a href="h

我正在对一个列表进行排序,该列表如下所示:

<ul class = "demoOne">
  <li><a href="http://somelink.com">Some text</a></li>
  <li><a href="http://somelink.com">Some more text</a>
     <ul>
        <li><a href="http://somelink.com">Some nested text</a></li>
        <li><a href="http://somelink.com">Some more nested Text</a></li>
        <li><a href="http://somelink.com">Even more nested Text</a></li>
     </ul>
  </li>
  <li><a href="http://somelink.com">Still more text</a></li>
  <li><a href="http://somelink.com">Even more text</a></li>
</ul>
我在以下位置找到此解决方案:

$(函数(){
$.fn.sortList=函数(){
var mylist=$(此值);
var listitems=$('li',mylist).get();
排序(函数(a,b){
var compA=$(a.text().toUpperCase();
var compB=$(b.text().toUpperCase();
回报率(公司<公司)?-1:1;
});
$.each(列表项、函数(i、itm){
mylist.append(itm);
});
}
$(“ul#demoOne”).sortList();
});
我遇到的问题是,这会占用我所有的嵌套链接,并将它们插入到外部列表中

因此,我最终得到的是一个如下所示的列表:

<ul class = "demoOne">
  <li><a href="http://somelink.com">Some text</a></li>
  <li><a href="http://somelink.com">Some more text</a>
     <ul>
        <li><a href="http://somelink.com">Some nested text</a></li>
        <li><a href="http://somelink.com">Some more nested Text</a></li>
        <li><a href="http://somelink.com">Even more nested Text</a></li>
     </ul>
  </li>
  <li><a href="http://somelink.com">Still more text</a></li>
  <li><a href="http://somelink.com">Even more text</a></li>
</ul>
  • 甚至更多的嵌套文本
  • 更多文本
  • 更多的嵌套文本
  • 一些嵌套文本
  • 更多的文字
  • 一些文本
  • 更多文本
我怎样才能解决这个问题


我正在学习jQuery,完全超出了我的深度,所以请放轻松。

我感觉有点不舒服,但我最终的做法是在父李的基础上添加一个可排序类

<ul class = "demoOne">
  <li class="sortable"><a href="http://somelink.com">Some text</a></li>
  <li class="sortable"><a href="http://somelink.com">Some more text</a>
     <ul>
        <li><a href="http://somelink.com">Some nested text</a></li>
        <li><a href="http://somelink.com">Some more nested Text</a></li>
        <li><a href="http://somelink.com">Even more nested Text</a></li>
     </ul>
  </li>
  <li class="sortable"><a href="http://somelink.com">Still more text</a></li>
  <li class="sortable"><a href="http://somelink.com">Even more text</a></li>
</ul>
我仍然希望看到一种不用额外的类就可以做到这一点的方法。如果有人知道这样做的方法,我很乐意记下这个答案,并接受这个更好的答案

$('.sortable').not(".sortable li").sort(function(a, b){
        return $('a', a).text() > $('a', b).text();
    }).appendTo(".current");