0

gfield_html の下のすべての li を div でラップする方法。

現在、これを使用しています:

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

しかし、2 番目の 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

gfield_htmlとの間の要素のみをラップしたいだけの場合gsectionは、この方法で行うことができます

$('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 に答える