假设我有一组简单的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
的最有效方法是什么?
答案 0 :(得分:4)
$('.content').after(function() {
return $(this).prev('.metadata');
});
答案 1 :(得分:1)
$('div.content').each(function(i) {
$(this).prev('.metadata').insertAfter($(this));
})