Javascript 在jquery中未执行排序
我正在对div进行排序,但无法执行排序。我正在使用jQuery.fn.sorteElements。下面是htmlJavascript 在jquery中未执行排序,javascript,jquery,Javascript,Jquery,我正在对div进行排序,但无法执行排序。我正在使用jQuery.fn.sorteElements。下面是html <div id="sortList"> <div class="list" style="display: block;"> <a onclick="openInfoWindow("10"); return false;" href="#"></a> <div class="imgClass
<div id="sortList">
<div class="list" style="display: block;">
<a onclick="openInfoWindow("10"); return false;" href="#"></a>
<div class="imgClass">
<a onclick="openInfoWindow("10"); return false;" href="#">
<img class="innerImg" alt="" src="img">
</a>
</div>
<div class="inner">
<div class="name">edata</div>
</div>
</div>
<div class="list" style="display: block;">
<a onclick="openInfoWindow("10"); return false;" href="#"></a>
<div class="imgClass">
<a onclick="openInfoWindow("10"); return false;" href="#">
<img class="innerImg" alt="" src="img">
</a>
</div>
<div class="inner">
<div class="name">fdata</div>
</div>
</div>
<div class="list" style="display: block;">
<a onclick="openInfoWindow("10"); return false;" href="#"></a>
<div class="imgClass">
<a onclick="openInfoWindow("10"); return false;" href="#">
<img class="innerImg" alt="" src="img">
</a>
</div>
<div class="inner">
<div class="name">cdata</div>
</div>
</div>
</div>
非常感谢您的任何帮助尝试以下方法:
$('#sortList .list').sortElements(function(a, b){
return $(a).children(".inner").find(".name").text().toLowerCase() > $(b).children(".inner").find(".name").text().toLowerCase() ? 1 : -1;
});
参见有几个问题:
- $(“.sortList”)应为$(“#sortList”),“#”查找带有“sortList”的id,“.”查找带有“sortList”的类
- 您需要调用元素列表上的sortElements,而不是容器so$('.sortList')。sortElements应该是$('#sortList')。children(“.list”).sortElements
- 在比较函数的return语句中,需要比较a和b,而不是a和a
- 此外,在return语句中,您现在不需要查找“.list”,您可以直接转到“.inner”
“.sortList”选择器正在查找具有sortList类的每个元素,但是您没有该类的元素。我认为您应该对要排序的元素而不是其容器调用sortElements函数…$(“.sortList”).children(“.list”).sortElements(函数(a,b)您没有一个名为sortList的类,但是idgreat!像往常一样,短而精确的解决方案
$('#sortList .list').sortElements(function(a, b){
return $(a).children(".inner").find(".name").text().toLowerCase() > $(b).children(".inner").find(".name").text().toLowerCase() ? 1 : -1;
});
$('#sortList').children(".list").sortElements(function(a, b) {
return $(a).children(".inner").find(".name").text().toLowerCase() > $(b).children(".inner").find(".name").text().toLowerCase() ? 1 : -1;
});