Javascript 如何删除嵌套的UL元素但保留子元素
我希望删除嵌套列表的Javascript 如何删除嵌套的UL元素但保留子元素,javascript,jquery,html,Javascript,Jquery,Html,我希望删除嵌套列表的标记,然后将其子元素添加到父元素。例如: <ul> <li>Item 1</li> <ul> <li>Item 2</li> </ul> <li>Item 3</li> </ul> 非常感谢任何帮助。使用 或 试一试 如果你需要它为…工作。。多层次深入。。比如说 <ul class="outer">
标记,然后将其子元素添加到父
元素。例如:
<ul>
<li>Item 1</li>
<ul>
<li>Item 2</li>
</ul>
<li>Item 3</li>
</ul>
非常感谢任何帮助。使用
或
试一试
如果你需要它为…工作。。多层次深入。。比如说
<ul class="outer">
<li>Item 1</li>
<ul>
<li>Item 2</li>
<ul>
<li>Item 2</li>
</ul>
</ul>
<li>Item 3</li>
</ul>
- 项目1
- 项目2
- 项目2
- 项目3
您的原始列表HTML无效,您的jQuery似乎有一些括号问题。我没有添加和标记,因为它们不相关。我还在这里手工输入了jQuery,这就是为什么我漏掉了一个括号,现在已经更正了。@user1570775他们不是说缺少
和
标记,而是说
元素不能是
元素的直接子元素;无效HTML应该是..
,我的意思是您发布的代码无效,而不是缺少一个完整的HTML示例。您不能将一个作为另一个
的直接子级。如果您在Word2003中创建一个缩进列表,然后将其复制/粘贴到tinyMCE中,这就是它的表示方式。对于给定的示例,任何ul元素上都没有适用的类,但该问题可能发生的级别不一致,对不起,我应该说得更清楚些。
$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);
}
}
$('ul > ul > li').unwrap('ul');
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>