如何获得列表的深度级别?
x或li的数量
例如: 级别 2
的列表<ul>
<li>1
</li>
<li>2
<ul>
<li>2.1</li>
<li>2.2</li>
<li>2.3</li>
</ul>
</li>
<li>3
</li>
</ul>
级别 3
的列表<ul>
<li>1
</li>
<li>2
<ul>
<li>2.1
<ul>
<li>2.1.1</li>
</ul>
</li>
<li>2.2</li>
<li>2.3</li>
</ul>
</li>
<li>3
</li>
</ul>
答案 0 :(得分:2)
我提出的一种方式:
function getDepth(list){
for(var depth=0; list.querySelector(Array(depth++ +3).join(list.tagName+" ")) ; );
return depth;
}
// example usage:
getDepth( document.getElementsByTagName"ul")[0] );
可能有更好的解决方案,但这似乎有效,并且避免了最深入的子搜索的重复迭代,所以它应该也要快得多。
请小心翼翼地踢轮胎:http://jsfiddle.net/nghea3ot/4/
我知道这个问题在这里没有得到很多的爱,但这是一个很好的问题,现有的答案很差......