如何删除嵌套的UL元素但保留子元素

时间:2013-09-25 14:23:10

标签: javascript jquery html html5

我希望删除嵌套列表的<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);
}
}

任何帮助都非常感激。

2 个答案:

答案 0 :(得分:6)

使用.unwrap()

DEMODEMO

$('ul > ul > li').unwrap('ul');

答案 1 :(得分: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>