0

假设我有一组简单的 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本演示中所示。

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

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

4

2 回答 2

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

小提琴

于 2014-03-20T20:50:20.640 回答
1
$('div.content').each(function(i) {
    $(this).prev('.metadata').insertAfter($(this));
})

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

于 2014-03-20T20:51:18.863 回答