Jquery 在位包装多个子图元

Jquery 在位包装多个子图元,jquery,jquery-selectors,Jquery,Jquery Selectors,我有一些基本上与以下相同的HTML: <div id="row-1" class="row"> <div class="col1"></div> <div class="col2"></div> <div class="col3"></div> <div class="col4"></div> <div class="col5"><

我有一些基本上与以下相同的HTML:

<div id="row-1" class="row">
    <div class="col1"></div>
    <div class="col2"></div>
    <div class="col3"></div>
    <div class="col4"></div>
    <div class="col5"></div>
</div>
<div id="row-2" class="row">
    <div class="col1"></div>
    <div class="col2"></div>
    <div class="col3"></div>
    <div class="col4"></div>
    <div class="col5"></div>
</div>
<div id="row-3" class="row">
    <div class="col1"></div>
    <div class="col2"></div>
    <div class="col3"></div>
    <div class="col4"></div>
    <div class="col5"></div>
</div>

现在,我需要使用jQuery来选择col2、col3、col4,并在它们周围包装一个新的div对,以生成如下html:

<div id="row-n" class="row">
    <div class="col1"></div>
    <div class ="wrapped-1">
        <div class="wrapped-2">
            <div class="col2"></div>
            <div class="col3"></div>
            <div class="col4"></div>
        </div>
    </div>
    <div class="col5"></div>
</div>

我有点困难。我试过使用这个:

$('div[id^="row-"]')
    .children('.col2, .col3, .col4')
    .wrapInner('<div class="wrapped-2" />')
    .wrapInner('<div class="wrapped-1" />');
$('div[id^=“row-”]”)
.children('.col2、.col3、.col4')
.wrapInner(“”)
.wrapInner(“”);
。。。它给出了与我想要的结果最接近的结果,但是我需要标记在外部,而不是插入到选定的元素中。 .wrapAll()似乎只是将所有项目分组到第一行,并将它们从后续行中删除,这显然是错误的


我对jQuery比较陌生,因此非常感谢您在这方面提供的任何帮助和/或建议

实际上,在这种情况下应该使用的方法是
wrapAll
方法,它用指定的元素包装所有选定的元素,通过使用
每个
方法可以防止这种情况发生,因此只包装特定元素的子元素

$('div[id^="row-"]').each(function() {
    $(this).children('.col2, .col3, .col4')
           .wrapAll('<div class="wrapped-1"><div class="wrapped-2"></div></div>');
});
$('div[id^=“row-”])。每个(函数(){
$(this.children('.col2、.col3、.col4'))
.wrapAll(“”);
});

实际上,在这种情况下应该使用的方法是
wrapAll
方法,它用指定的元素包装所有选定的元素,通过使用
每个
方法可以防止这种情况,因此只包装特定元素的子元素

$('div[id^="row-"]').each(function() {
    $(this).children('.col2, .col3, .col4')
           .wrapAll('<div class="wrapped-1"><div class="wrapped-2"></div></div>');
});
$('div[id^=“row-”])。每个(函数(){
$(this.children('.col2、.col3、.col4'))
.wrapAll(“”);
});

我想知道我是否需要一个each,或者需要一些东西来逐个迭代元素!非常好的解决方案,谢谢您的帮助!我想知道我是否需要一个each,或是一些单独迭代元素的东西!非常好的解决方案,谢谢您的帮助!