0

私は次のようなものを持っています:

<div id="outer-wrapper">
  <div class="outer">
    <p>......</p>
    <span class="author">Deena</span>
  </div>
  ...
  <div class="outer">
    <p>......</p>
    <span class="author">Amanda</span>
  </div>
</div>

span.authorの値を使用してdiv.outerを注文したいと思います。

これまでのところ、私は次のようにコーディングすることができました。

  var mylist = $('#outer-wrapper');
  var mylist2 = $('#outer-wrapper2');
  var listitems = mylist.find('.outer span.author');
  listitems.sort(function(a, b) {
    return $(a).html().toUpperCase().localeCompare($(b).html().toUpperCase());
  })
  $.each(listitems, function(idx, itm) { mylist2.append(itm); });

これは、div.outer全体ではなく、スパンアイテムを#outer-wrapper2に追加するだけです。

どうすれば希望どおりに機能させることができますか?

ありがとう!

4

1 に答える 1

1

要素を並べ替える必要があり.outer、並べ替え関数内で、返された HTML に基づいて並べ替えを行います.author

var mylist  = $('#outer-wrapper .outer').get(),
    mylist2 = $('#outer-wrapper2');

mylist.sort(function(a, b) {
    return $(a).find('.author').html().toUpperCase().localeCompare($(b).find('.author').html().toUpperCase());
});

mylist2.append(mylist);

フィドル

于 2013-02-27T19:01:33.247 に答える