1

我有一个动态生成的页面,其中包含不同数量的项目(div.item)。每个项目都有一个带有“日期”类的内部 div。这些项目根据日期值从数据库中按升序排列。由于此页面内容取自数据库,可能有 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 回答