2016-11-21 53 views
1

我有一個標準的多級別列表,我需要檢查特定項目的根目錄,直到

$(e.target).parents('ul').length === 1 

爲此可以使用.parentsUntil()嗎?還是有另一種方法,我可以使用,所以我可以檢查列表項的根目錄是否有特定的類?

+1

類似'$(e.target).closest('ul')。hasClass('something')' – adeneo

回答

3

你在找什麼叫做.closest()

說明:對於組中的每一個元素,獲取通過測試元件本身和DOM樹向上遍歷通過它的祖先選擇相匹配的第一個元素。使用

例子:

if($(e.target).closest('ul').hasClass('cls')) { 
    //do something 
    alert('Class Found'); 
} 
+0

如果你有'li> ul> li> ul> li ...'這不會帶來根'ul',不是嗎? –

+0

@TimMarshall不,它不會。它會得到第一個匹配:***對於集合中的每個元素,獲取匹配選擇器的第一個元素*** –

+0

謝謝Aniket進一步解釋:) –

1

您可以使用parentsUntil

$(e.target).parentsUntil('ul.someClass')

所以它會與一類someClass

.length是使用選擇ul檢查它是否存在或不。