0

次のような HTML があるとします。

<div class="section">
    <div class="bottom">bottom</div>
    <div class="top">top</div>
</div>
<div class="section">
    <div class="bottom">bottom</div>
    <div class="top">top</div>
</div>

jQueryを使用してそれぞれ.topの上に移動したいとします。.bottom.section

私はこれをやろうとしています:

$('.section').each(function (i, obj) {
    $('.bottom').insertAfter('.top');
});

しかし、これにより、「下」が各セクションで 4 回繰り返されます。

フィドル: http://jsfiddle.net/TLejL/

私は何を間違っていますか?

4

2 に答える 2

1

関数$(this)内で参照を使用してみてください。.each()

$('.section').each(function (i, obj) {
    $(this).find('.bottom').insertAfter($(this).find('.top'));
});

また

$('.top').each(function() {
    $(this).closest('.section').prepend($(this));
});

デモ

于 2014-04-25T05:26:52.797 に答える
1

現在の上部と下部の要素をターゲットにする必要がありますsection

$('.section .top').after(function (i, obj) {
    return $(this).prev()
});

デモ:フィドル

于 2014-04-25T05:28:32.587 に答える