0

如何将 gfield_html 下的所有 li 包装在 div 中。

目前我们正在使用这个:

$('.gfield_html').each(function(i, e) {
    $(e).nextUntil('.gfield_html').wrapAll('<div class="box"></div>');
});

但是第二个 gsection 被包装到 div 中,它是一个标题,所以我们不希望它被包装。

这是结构

<li class="gsection">test</li>
<li class="gfield_html">test</li>
<li>test</li>
<li>test</li>

<li class="gsection">test2</li>
<li class="gfield_html">test2</li>
<li>test2</li>
<li>test2</li>
4

1 回答 1

0

如果您只想在 and 之间包装元素gfield_htmlgsection那么您可以这样做

$('li.gfield_html').each(function(){
    var $set = $();
    var nxt = this.nextSibling;
    while(nxt) {
        if(!$(nxt).is('li.gsection')) {
            $set.push(nxt);
            nxt = nxt.nextSibling;
        } else break;
    } 
   console.log($set.wrapAll('<div class="wrapper" />'));
});

演示

巴斯德宾

于 2013-03-12T20:54:20.697 回答