2014-06-05 46 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()將返回相對於根元素的深度,這可能不是您想要的。

相關問題