我编写了以下方法来展平嵌套列表的深层次结构(我使用的是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>
下仍然有空<li>
秒。我错过了什么?
更新(和重复):
导致输出中出现以下错误:
<li>Application Form
<ul>
</ul>
</li>
-
如果使用以下内容调用Arun P Johny
的{{3}}(与我的代码类似),则会展平层次结构,但无法删除某些元素上的子<ul>
:
$('#test').children('li').each(function(){
test(this)
});
答案 0 :(得分:0)
这是一个简单的解决方案,但前提是你有3个级别的列表:
function test(element){
var el = $(element);
$(el.find('li').get().reverse()).each(function () {
el.after(this);
$(this).find('ul').remove();
});
// FIX: This is not removing empty descendant lists!
el.find('ul').remove();
}
$('#test').children('li').each(function(){
test(this)
});
在您的示例中,您尝试在主页的子级中找到所有<ul>
,但申请表不再是主页的子级>