Ded*_*rik 5 javascript sorting jquery
我想使用数据属性值按字母顺序对html div进行排序.我有以下代码,并想知道,如何实现这一目标
<div id="aphaOrder">
<div class="value" data-site="olark">olark</div>
<div class="value" data-site="snapengage">snapengage</div>
<div class="value" data-site="helponclick">helponclick</div>
<div class="value" data-site="hangouts">hangouts</div>
<div class="value" data-site="atlass">atlass</div>
<div class="value" data-site="hipchat">hipchat</div>
<div class="value" data-site="chat hip">chat hip</div>
<div class="value" data-site="force">force</div>
<div class="value" data-site="sugar sms">sugar sms</div>
<div class="value" data-site="capsule">capsule</div>
<div class="value" data-site="highrise">highrise</div>
<div class="value" data-site="nimble">nimble</div>
<div class="value" data-site="batch">batch</div>
<div class="value" data-site="book crm">book crm</div>
<div class="value" data-site="solve">solve</div>
<div class="value" data-site="insightly">insightly</div>
<div class="value" data-site="pipeliner">pipeliner</div>
<div class="value" data-site="shopify">shopify</div>
<div class="value" data-site="wordpress">wordpress</div>
<div class="value" data-site="Magento">Magento</div>
</div>
Run Code Online (Sandbox Code Playgroud)
var alphabeticallyOrderedDivs = $('.value').sort(function(a,b){
return $(a).attr('data-site') > $(b).attr('data-site');
});
$("#aphaOrder").html(alphabeticallyOrderedDivs);
Run Code Online (Sandbox Code Playgroud)
这是代码没有给出正确的结果.请帮我解决一下这个.
axe*_*uch 12
您可以使用 String.prototype.localeCompare
var alphabeticallyOrderedDivs = $('.value').sort(function(a, b) {
return String.prototype.localeCompare.call($(a).data('site').toLowerCase(), $(b).data('site').toLowerCase());
});
var container = $("#aphaOrder");
container.detach().empty().append(alphabeticallyOrderedDivs);
$('body').append(container);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8179 次 |
| 最近记录: |