Sort multiple unordered list items with jQuery
HTML
<p>
Sort this list:
</p>
<ul class="listitems autosort">
<li data-position="3">Item 3</li>
<li data-position="2">Item 2</li>
<li data-position="1">Item 1</li>
<li data-position="4">Item 4</li>
</ul>
<p>
Don't sort this list:
</p>
<ul class="listitems">
<li data-position="5">Item 5</li>
<li data-position="6">Item 6</li>
<li data-position="3">Item 3</li>
<li data-position="4">Item 4</li>
</ul>
<p>
But do sort this one:
</p>
<ul class="listitems autosort">
<li data-position="8">Item 8</li>
<li data-position="7">Item 7</li>
<li data-position="2">Item 2</li>
<li data-position="4">Item 4</li>
</ul>
JavaScript
$(".listitems").each(function(){
$(this).html($(this).children('li').sort(function(a, b){
return ($(b).data('position')) < ($(a).data('position')) ? 1 : -1;
}));
});