我真的迷失在试图按照li中的跨度订购ul列表。
我有下一个结构
<ul id="videosList">
<li class="response1">
<a href="link"><img src="moon" /><span>Alex breaking bad</span>
<li>
<li class="response1">
<a href="link"><img src="moon" /><span>Jason playing piano</span>
<li>
<li class="response1">
<a href="link"><img src="moon" /><span>Jenny skying</span>
<li>
<li class="response1">
<a href="link"><img src="moon" /><span>Chuck norris</span>
<li>
<li class="response1">
<a href="link"><img src="moon" /><span>Zyxwaa</span>
<li>
<li class="response1">
<a href="link"><img src="moon" /><span>Realtek</span>
<li>
<li class="response2">
<a href="link"><img src="moon" /><span>Bad alex breaking</span>
<li>
<li class="response2">
<a href="link"><img src="moon" /><span>Piano playing Jason</span>
<li>
<li class="response2">
<a href="link"><img src="moon" /><span>Skying Jenny</span>
<li>
<li class="response2">
<a href="link"><img src="moon" /><span>Norris chuck</span>
<li>
<li class="response2">
<a href="link"><img src="moon" /><span>Intel</span>
<li>
</ul>
我从一些上传的视频中生成了该列表并将其分开,因为respnse1带来了来自X数据库的视频,并且响应带来了来自Y数据库的视频。我想要做的是按照SP中的SPAN内容订购列表。
我尝试了Google和Stack Overflow中的一些内容,但我无法调整任何1以适应我的需要。
就是这样,我如何通过LI中SPAN的内容订购带有JavaScript / jQuery的列表?
答案 0 :(得分:2)
它有效!...
var list = $("ul#videosList");
var desc= false;
list.append(list.children().get().sort(function(a, b) {
var aProp = $(a).find("span").text(),
bProp = $(b).find("span").text();
return (aProp > bProp ? 1 : aProp < bProp ? -1 : 0) * (desc ? -1 : 1);
}));
答案 1 :(得分:0)
如果你正在使用jQuery,请参考this extension,它可以帮助你使用自定义比较器函数对DOM元素进行排序。它的工作原理如下:
$('#videosList').sortElements(function(a, b){
return $(a).text() > $(b).text() ? 1 : -1;
});
然后,列表项按字母顺序排列。