3

我希望删除<ul>嵌套列表的标签,然后将其子<li>元素添加到父<ul>元素。例如 :

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

应该变成:

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

我是 jQuery 新手,到目前为止我创建的内容不起作用,我不知道为什么:

 $content.find('ul').each(function() {
if ($(this).parent().is('li')) {
  var elements = $(this).children().detach();
  var closest = $(this).closest('li');
  $(this).remove();
  elements.appendTo(closest);
}
}

非常感谢任何帮助。

4

2 回答 2

6

使用.unwrap()

演示演示

$('ul > ul > li').unwrap('ul');
于 2013-09-25T14:28:07.917 回答
1

尝试

var elements = [];
$('ul.outer li').each(function(){
    elements.push(this); 
});
$('ul.outer').html('');
for(x in elements){
    $('ul.outer').append($(elements[x])[0].outerHTML);
}

如果你需要它来工作.. 多层次的深度.. 例如

<ul class="outer">
<li>Item 1</li>
<ul>
    <li>Item 2</li>
    <ul>
        <li>Item 2</li>
    </ul>
</ul>
<li>Item 3</li>
</ul>
于 2013-09-25T14:29:29.863 回答