Jquery wrappAll nextUntil

时间:2013-03-12 20:30:39

标签: jquery wrapall

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

目前我们正在使用它:

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

但第二节被包裹在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>

1 个答案:

答案 0 :(得分:0)

如果您只想在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" />'));
});

<强> DEMO

PASTEBIN