1

さまざまな数のアイテム(div.item)を含む動的に生成されたページがあります。各アイテムには、クラス「日付」の内部divがあります。アイテムは、日付の値に基づいてDBから昇順で並べ替えられます。このページのコンテンツはDBから取得されたものであるため、同じ日付のアイテムが10個ある可能性があり、次の3個は日付を共有し、次のXは別の日付を共有する可能性があります。

div.dateの内容に基づいて、同じ日付のすべてのアイテムをdiv.groupにラップします。PHPコードでこれを直接実行することをお勧めしますが、ドキュメントのない大規模で厄介なプロジェクトを継承しており、このオプションは一時的なものにすぎません。現在の簡略化された構造は次のとおりです。

<div class="item">
  <div class="date">04-06-2012</div>
  <div class="other-content">Other Content</div>
</div>
<div class="item"> // To be grouped with above
  <div class="date">04-06-2012</div> 
  <div class="other-content">Other Content</div>
</div>
...
<div class="item"> // In it's own group
  <div class="date">08-06-2012</div>
  <div class="other-content">Other Content</div> 
</div>
...

ありがとう

4

1 に答える 1

3

div.groupこれにより、すべてのアイテムが日付でグループ化され、要素がに追加されますbody

var groups={}
$('div.item').each(function() {
    var dt = $(this).find ( '.date' ).text() 
    groups[dt] = groups[dt] || []
    groups[dt].push (this)
});
$.each (groups, function(k, v) {
    var group = $('<div/>').addClass('group')
    $.each (v, function(k, item) {
        $(item).detach().appendTo (group)
    });
    group.appendTo ( 'body' )  //or wherever you need to append it
});
于 2012-06-04T23:35:32.823 に答える