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");