На основе исходного HTML, вы могли бы сделать что-то вроде этого:
Html:
<ul id="cat">
<li id="3">Text 3</li>
<li id="1">Text 1</li>
<li id="2">Text 2</li>
</ul>
JavaScript:
$("#cat li").sort(function (a, b) {
return parseInt(a.id) > parseInt(b.id);
}).each(function() {
var elem = $(this);
elem.remove();
$(elem).appendTo("#cat");
});
Заканчивать this fiddle.
EDIT:
Как @KiKo правильно указал, приведенный выше код брейки, если у вас есть список более десяти элементов. Вы можете исправить это, заменив «больше» в функции сортировки минусом.
Html:
<ul id="cat">
<li id="3">Text 3</li>
<li id="2">Text 2</li>
<li id="1">Text 1</li>
<li id="9">Text 9</li>
<li id="11">Text 11</li>
<li id="5">Text 5</li>
<li id="7">Text 7</li>
<li id="6">Text 6</li>
<li id="12">Text 12</li>
<li id="4">Text 4</li>
<li id="10">Text 10</li>
<li id="8">Text 8</li>
</ul>
JavaScript:
$("#cat li").sort(function(a, b) {
return parseInt(a.id) - parseInt(b.id);
}).each(function() {
var elem = $(this);
elem.remove();
$(elem).appendTo("#cat");
});
Here's a new JSFiddle.
Вы можете разместить свой код до сих пор? – elclanrs
Использовать номера в качестве первого символа в 'id' или classnames является inavlid. – DaniP