JS / jQuery:获取元素的深度?

在纯JavaScript或jQuery中获取元素深度的最简单方法是什么? “深度”是指它嵌套了多少元素,或者它有多少祖先。

怎么样:

$('#my-element').parents().length 

另外一个说明。 如果您想获得相对于特定上下文的深度,您可以执行以下操作:

 var depth = $("#my-element","#ContextContainerID").parents("ul").length; 

上面,我正在搜索容器#ContextContainerID中有多少个UL

假设您不希望在父项中包含body和html标记来计算使用情况:

 $("#element").parents("*").not("body,html").size() 

在线演示: http : //jsfiddle.net/zaJff/

尝试这样的事情:

   MooExample     
  • moo
  • foo
  • fasoo
  • moasf
  • moosadg
  • moo1
  • moo412
  • moo613a

我的建议是重新思考你解决问题的方式 – 我认为找到节点之间的代数可能不是最好的方法,这听起来像一个解决方案,很可能很容易被未来的变化打破码。

但是,如果你坚持,解决方案(通过Cletus,在本机javascript中)在这个页面上似乎相当不错: 用jquery查找两个元素之间的节点数量?