2014-06-05 49 views
0

考虑我有HTML如何在jQuery中获取当前元素深度?

<div id=test> 
    <a>test1</a> 

    <div> 
     <a>test2</a> 
     <a>test3</a> 
    </div> 
</div> 

第2 &第三环节都在不同的深度比第一个,如果我使用jQuery选择它们,如何识别深度它们的区别?

$('a').each(function() { 
    console.log($(this).text() + " and my current depth is: "); 
}); 

http://jsfiddle.net/vpp8d/

+0

http://stackoverflow.com/questions/4710943/js-jquery-get-depth-of-element,http://stackoverflow.com/questions/15509707/how-to-find-how-deep-an -element-is-nested-in-jquery –

+0

你的问题已经关闭,所以我把我的答案放在这里:http://stackoverflow.com/a/24058845/747579 –

回答

3

如果你想一个特定容器内得到深度我会做到这一点使用$(this).parents().length

http://jsfiddle.net/vpp8d/1/

+2

我建议使用'parentsUntil('body') '('深度'可能不应该包含''或''元素):[** demo **](http://jsfiddle.net/davidThomas/vpp8d/3/)。 –

+0

为什么你认为它不应该包含身体?如果只需要深入比较功能 - 无关紧要。如果没有,你总是可以减少2的结果:] – entio

0

,使用parentsUntil()

$('a').each(function() { 
    console.log($(this).text() + " and my current depth is: " + $(this).parentsUntil('#test').length); // 0, 1, 1 in your case 
}); 

parents()将返回相对于根元素的深度,这可能不是您想要的。

相关问题