我编写了以下方法来展平嵌套列表的深层层次结构(我使用的是 TypeScript,但您了解 JS 的想法)。
该方法针对每个顶级<li>
元素运行,以在其<li>
自身之后插入其所有后代:
// Flatten a nested list branch - acts in reverse to allow for nested lists
_flattenBranch(element: HTMLElement)
{
var el = $(element);
$(el.find('li').get().reverse()).each(function ()
{
el.after(this);
});
// FIX: This is not removing empty descendant lists!
el.find('ul').remove();
}
<ul></ul>
我注意到在查看生成的输出时,我在一些 s 下仍然有空的<li>
s。我错过了什么?
更新(和复制):
试试这个jsfiddle:http: //jsfiddle.net/3gu7L/3/
这导致输出中出现以下错误:
<li>Application Form
<ul>
</ul>
</li>
- 如果使用以下代码(类似于我的代码)调用Arun P Johny
的jsfiddle<ul>
,它会使层次结构变平,但无法删除某些元素上的子元素:
$('#test').children('li').each(function(){
test(this)
});