I want to sort a li within divs alphabetical by jQuery
At the moment, something indefinable happens. Is apparently sorted without a pattern.
Here is a snippet of my html
<ul id="ui-id-1" tabindex="0" class="ui-menu ui-widget ui-widget-content ui-autocomplete ui-front">
<li class="ui-menu-item">
<div id="ui-id-149" tabindex="-1" class="ui-menu-item-wrapper">Great Britain</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-128" tabindex="-1" class="ui-menu-item-wrapper">Austria</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-150" tabindex="-1" class="ui-menu-item-wrapper">Nigeria</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-169" tabindex="-1" class="ui-menu-item-wrapper">Morocco</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-132" tabindex="-1" class="ui-menu-item-wrapper">Turkey</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-133" tabindex="-1" class="ui-menu-item-wrapper">Romania</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-134" tabindex="-1" class="ui-menu-item-wrapper">Belgium</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-135" tabindex="-1" class="ui-menu-item-wrapper">Netherlands</div>
</li>
<li class="ui-menu-item">
<div id="ui-id-136" tabindex="-1" class="ui-menu-item-wrapper">Luxembourg</div>
</li>
...
</ul>
the js:
var $lis = $('.ui-menu-item');
var alphabeticallyOrderedLis = $lis.sort(function(a, b) {
return $(a).find("div").text() > $(b).find("div").text();
});
$(".ui-autocomplete").html(alphabeticallyOrderedLis);
But please visit the fiddle to check it on your own: https://jsfiddle.net/the_taeq/jwx1w729/
Am I really that stupid?