使用jquery合并元素

时间:2014-02-12 18:31:54

标签: jquery

我有以下html:

<div class="date" data-groupdate="2014-02-03T05:00:00.0000000Z">
    <article data-publisheddate="2014-02-03T19:09:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:08:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:07:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:06:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:05:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:04:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:03:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:02:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:01:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T19:00:00.0000000Z" data-istop="False"/>
</div>

<div class="date" data-groupdate="2014-02-03T05:00:00.0000000Z">
    <article data-publisheddate="2014-02-03T18:54:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T18:53:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T18:52:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T18:51:00.0000000Z" data-istop="False"/>
    <article data-publisheddate="2014-02-03T18:50:00.0000000Z" data-istop="False"/>
</div>

我希望将两个<div>合并为一个<div>,以保持每个data-publisheddate的每个<article>的顺序。

换句话说,从下<article>中取出5 <div>个元素,并将它们插入10个<div>元素之后的上部<article>内。完成后,请完全删除底部<div>

我的伪代码如下:

  1. 通过查看<div>属性找到匹配的data-groupdate
  2. 使用匹配的<div> s,删除所有元素。
  3. 将已删除的<article>元素附加到找到的第一个
  4. 清理并删除现在为空的<div>元素。
  5. 怎么会有人解决这个问题? 感谢

1 个答案:

答案 0 :(得分:0)

这应该有用,但我不认为&lt;文章&gt;可以自我关闭。我遇到了问题。一旦我添加了闭包,这就有效:

var firstDiv = $('.date').first();
var lastDiv = $('.date').last();
lastDiv.children().each(function() {
    var thisArticle = $(this);
    firstDiv.append(thisArticle);
});
lastDiv.remove();

Here is the working fiddle

显然这仅适用于2&#39; date&#39; div的。如果你想要扩展它,你可能想要添加ID或遍历每个$(&#39; .date&#39;)并避免使用first()和last()。

已更新,因此它实际上删除了div而不仅仅是内容