jQuery 用 div 包装多个 ID

jQuery wrap multiple ids with div

我试图用 div 包裹选定的 id 集,并用不同的 id 包裹其他集,但不太确定它应该如何工作。

我有以下 html 代码:

<div class="wrapper">
<div id="block_1">
        <div class="post">
        </div>
</div>
<div id="block_2">
        <div class="post">
        </div>
</div>
<div id="block_3">
        <div class="post">
        </div>
</div>
<div id="block_4">
        <div class="post">
        </div>
</div>
<div id="block_5">
        <div class="post">
        </div>
</div>

并想使用 Jquery 将两个不同的集合包裹在另一个 div 中,如下所示:

<div class="wrapper">
<div class="wrapright">
    <div id="block_1">
            <div class="post">
            </div>
    </div>
    <div id="block_4">
            <div class="post">
            </div>
    </div>
    <div id="block_5">
            <div class="post">
            </div>
    </div>
</div>
<div class="wrapleft">
    <div id="block_2">
            <div class="post"></div>
    </div>

    <div id="block_3">
            <div class="post"></div>
    </div>

    </div>

</div>

如您所见,我想用 class="wrapright" 包裹 block 1,4,5 并用 class="wrapleft"

包裹块 2,3

有什么 Jquery 方法可以做到这一点!!我找到了一些方法,但都是针对单组,而不是多组...

感谢您的帮助!

您可以使用 .wrapAll()。

如果 id 和元素集是常量那么你可以

$('#block_1, #block_4, #block_5').wrapAll('<div class="wrapright" />');
$('#block_2, #block_3').wrapAll('<div class="wrapleft" />');

演示:Fiddle


如果元素集不是常数,那么您需要想出一个关于如何确定组的逻辑。