试图理解wrapall()

时间:2013-02-25 00:43:43

标签: jquery wrapall

我已经完成了对wrapall()的阅读,我认为这可能是我需要的解决方案。给这个结构:

<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>

我想结束这个结构:

<ul>
<div class="class1">
<li></li>
<li></li>
</div>
<div class="class2">
<li></li>
<li></li>
</div>
</ul>

我没有丝毫如何做到这一点。我已经阅读了一些wrapall的例子,但没有一个我能以这种方式适应

2 个答案:

答案 0 :(得分:0)

我建议:

$('ul li').slice(0,2).wrapAll('<ul></ul>').closest('ul').wrap('<li />');

结果是:

<ul>
    <li>
        <ul>
             <li>1</li>
             <li>2</li>
         </ul>
     </li>    
    <li>3</li>
    <li>4</li>
</ul>

JS Fiddle demo

答案 1 :(得分:0)

var a = $('li');
do { $(a.slice(0,2)).wrapAll('<li class="two"><ul></ul></li>'); }
while( (a = a.slice(2) ).length>0 );

导致:

<ul>
    <li class="two">
       <ul>
          <li>a1</li>
          <li>a2</li>
       </ul>
    </li>
    <li class="two">
       <ul>
         <li>b1</li>
         <li>b2</li>
       </ul>
    </li>
</ul>