jquery 脚本“insertbefore”无法正常工作

juzqafwq  于 12个月前  发布在  jQuery
关注(0)|答案(2)|浏览(201)

我有这样一个HTML结构:

<div class="main">
    <div class="sub-main1">Content</div>
    <div class="sub-main2">Content</div>
</div>
<div class="main">
    <div class="sub-main1">Content</div>
    <div class="sub-main2">Content</div>
</div>

字符串
现在,我想把sub-main2移到sub-main1的上面。我已经使用了这个脚本:

jQuery( ".sub-main2" ).insertBefore( jQuery( ".sub-main1" ) );


现在,每个main类的div都有2个sub-main2类的div。
有人能帮我一下我在哪里犯了错误吗?
谢谢.

ilmyapht

ilmyapht1#

您应该在每个main元素中循环,然后为 thatmain元素的子干线执行插入操作。

jQuery('.main').each(function () {
        var subMain1 = jQuery(this).find('.sub-main1');
        var subMain2 = jQuery(this).find('.sub-main2');
        subMain2.insertBefore(subMain1);
      });

个字符

kdfy810k

kdfy810k2#

您的代码选择了所有.sub-main2元素,并将它们放在所有.sub-main1元素之前。这就是为什么您会重复一次。
您需要应用一个循环,在其中可以找到单独的.sub-main2,并将其放置在相应的.sub-main1之前。
像这样做:

$('.sub-main2').each(function() { $(this).insertBefore($(this).prev()); });

字符串
工作片段:

$('.sub-main2').each(function() { $(this).insertBefore($(this).prev()); });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="main">
    <div class="sub-main1">Content1-1</div>
    <div class="sub-main2">Content1-2</div>
</div>
<div class="main">
    <div class="sub-main1">Content2-1</div>
    <div class="sub-main2">Content2-2</div>
</div>

的数据

相关问题