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.metadatadiv.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 に答える