特定の要素の最も深い子孫レベルを効率的にカウントする方法はありますか?要素のDOM階層レベルを取得する(カウントの子孫レベル)
例:
<div id="wrapper">
<ul>
<li class="first">first</li>
<li class="active">second</li>
<li class="last"><a>third</a></li>
</ul>
</div>
#wrapper
最深のチェーンはこのように書きますので4
の子孫レベルを返す必要があります:#wrapper > ul > li > a
。それは子を持たないとli.last
が2
ためli.last > a
で返す必要がありますので
li.first
1
を返す必要があります。
私は$('#wrapper').find(*)
を実行し、すべての結果を反復することができます。これは、多くの子孫を持つ要素、特にbody
要素の場合、非常に遅くなるはずです。 http://jsbin.com/ixeWaja/1/edit
任意のアイデアを効率的にこの問題を解決する方法:ここで
は実験のためのスタートですか!
_ _ _efficint_を定義する "効率的な方法はあります" が、基本的には、**はありません。** – gdoron
もし '#wrapper> UL> LI> A'である3(すなわち、'#ラッパーは3レベルの子孫を持ちます)、 'li.first'は0で、' li.last'は1であってはいけませんか? – BoltClock
ありがとうございました。 – Alp