jquery 我需要将每两个li分开,并将它们附加到div中

nfg76nw0  于 2023-05-06  发布在  jQuery
关注(0)|答案(3)|浏览(168)

我有一个通用列表:

<ul>
    <li>list item1</li>
    <li>list item2</li>
    <li>list item3</li>
    <li>list item4</li>
    <li>list item5</li>
    <li>list item6</li>
</ul>

但我想做的是:

<div class="list">
    <ul>
        <li>list item1</li>
        <li>list item2</li>
    </ul>
</div>

<div class="list">
    <ul>
        <li>list item3</li>
        <li>list item4</li>
    </ul>
</div>

<div class="list">
    <ul>
        <li>list item5</li>
        <li>list item6</li>
    </ul>
</div>

我不能在 li 中添加类的原因是这是一个在Business Catalyst中创建的动态菜单。处理这种情况的最好办法是什么?

ukqbszuj

ukqbszuj1#

示例:http://jsfiddle.net/jBYqt/2/

$('ul > li:nth-child(2n-1)').each(function() {
    $(this).next().add(this).wrapAll('<div class="list"><ul></ul></div>');
}).eq(0).closest('div').unwrap();
nvbavucw

nvbavucw2#

您可以将.slice()方法与.wrap()方法结合使用。
像这样的东西会奏效的。

$('li')
  .slice(2)
  .wrap('<div class="list" />');

如果结果是奇数,就由你来处理。

yeotifhr

yeotifhr3#

$(document).ready(function(){
    var f=true;
    var l;
    $('ul>li').each(function(){
      if (f)
      {
        l=$('<div class="list"><ul/></div>');
        $(this).appendTo($('ul',l));
      }else{
        $(this).appendTo($('ul',l));
        $(l).appendTo('body');
      }
      f=!f;
    });
    $('body>ul').remove()
});

http://jsfiddle.net/x9Rq5/

相关问题