ネストされたリストの深い階層を平坦化するために、次のメソッドを作成しました (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>
。私は何が欠けていますか?
更新(および再現):
この jsfiddle を試してください: http://jsfiddle.net/3gu7L/3/
出力に次のエラーが発生します。
<li>Application Form
<ul>
</ul>
</li>
-Arun P Johny
のjsfiddleが以下を使用して呼び出された場合 (これは私のコードに似ています)、階層を平坦化しますが、<ul>
一部の要素の子を削除できません:
$('#test').children('li').each(function(){
test(this)
});