0

私はこれについて頭を悩ませてきましたが、解決策がわかりません。基本的に、UL のセットがあり、同じ構造内のすべての LI を並べ替えたいと考えています。

<ul>
   <li><span data-sort="-1">-1</span></li>
   <li><span data-sort="10">10</span></li>
</ul>
<ul>
   <li><span data-sort="4">4</span></li>
   <li><span data-sort="7">7</span></li>
</ul>
<ul>
   <li><span data-sort="5">5</span></li>
</ul>

これを次のように返したい:

<ul>
   <li><span data-sort="-1">-1</span></li>
   <li><span data-sort="4">4</span></li>
</ul>
<ul>
   <li><span data-sort="5">5</span></li>
   <li><span data-sort="7">7</span></li>
</ul>
<ul>
   <li><span data-sort="10">10</span></li>
</ul>

どんな助けでも事前に感謝します。ありがとう。

4

2 に答える 2

1

このようなもの :

var uls = $('ul'),
    lis = $('>li', uls);
    ul  = uls.empty().first(),

lis.sort(function(a,b) {
    return parseInt($(a).text(),10) > parseInt($(b).text(), 10);
}).each(function(_,li) {
    ul = ul.find('li').length > 1 ? ul.next() : ul;
    ul.append(li)
});

フィドル

于 2013-09-30T16:07:56.460 に答える