Javascript 在jquery中未执行排序

Javascript 在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进行排序,但无法执行排序。我正在使用jQuery.fn.sorteElements。下面是html

<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”
请参见JSFIDLE:


“.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;
});