使用jQuery在相邻的<div> s </div> </div>之后插入<div>

时间:2014-03-20 20:47:03

标签: jquery insertafter

假设我有一组简单的HTML元素,如下所示:

<div class="metadata">I'm metadata #1</div>
<div class="content">Hello, world!</div>

<p />

<div class="metadata">I'm metadata #2</div>
<div class="content">Hello, world!</div>

我的目标是在相邻 div.metadata之后立即插入每个div.content。显然,我可以尝试:$("div.metadata").insertAfter("div.content");但是这样做(按预期方式)会将div.metadata元素添加到每个div.content,如 this demo 所示。< / p>

您可能认为为每个 div 分配唯一ID会使事情变得简单,但1)这些标记是由CMS动态生成的,我希望避免手动分配ID,以及2 )可能有几十个相同的元素对。

所以,问题是,在每个div.metadata之后插入或附加到div.content的最有效方法是什么?

2 个答案:

答案 0 :(得分:4)

$('.content').after(function() {
    return $(this).prev('.metadata');
});

FIDDLE

答案 1 :(得分:1)

$('div.content').each(function(i) {
    $(this).prev('.metadata').insertAfter($(this));
})

http://jsfiddle.net/jwhitfieldseed/h7VZd/