2013-03-28 126 views
1

例如,我有以下html內容,使用jquery,我如何從li文本中找出ul元素的數量?我敢肯定,最接近的方法可以做到這一點,但如何,如果你不提前許多UL如何那裏知道...如何查找li元素路徑中的ul個元素?

<ul id="ul_first"> 
    <li>a</li> 
    <li>b</li> 
    <li>c</li> 
    <li>d</li> 
    <li>c 
       <ul id="ul_second"> 
          <li>a2</li> <------- From here, this li has two ul element 
          <li>b2</li> 
          <li>c2</li> 
          <li>d2</li> 
       </ul>  
    </li> 
</ul> 

回答

2

您可以使用parents

var numberOfULsContainingThisElement = $(this).parents('ul').length; 

即假定this是您指向的li的DOM元素(例如,如果您點擊它,則點擊處理程序中的this)。

您不會使用closest,因爲它會在第一場比賽中停止。 parents收集與選擇器匹配的所有祖先。

在你具體情況下(例如,而不是在一個單擊處理),這將是:

var numberOfULsContainingThisElement = $("#ul_second li").first().parents('ul').length; 

Live Example | Source

+0

感謝T.J.,我會試試看...... –