2011-05-18 23 views
1

比方說,我有巨大的樹視圖和一個分支在變量稱爲$branch現在我要檢查這是否分支包含沒有多個元素展開類。換句話說,只要找到一個匹配項就應該返回布爾值。最快的方式確實jQuery對象具有任何匹配的元素

好的,我可以用$branch.find('.expand').length > 0來做到這一點,但是有沒有更好的方法可以阻止第一個匹配元素,因此會更快?

我覺得使用first()減少了現有的設置爲一個長度,所以我會使用find(),然後減少?

Ps。正如您在示例中注意到的那樣,我使用find(),因爲我想深入的不僅僅是$branch的子代

+0

'.expand'是否總是'$ branch'的直接子?還是更深? – James 2011-05-18 09:28:43

+0

它可能更深 – Tx3 2011-05-18 09:43:14

回答

1

像這樣的標準CSS選擇器使用本機DOM方法querySelectorAll()。即他們運行在瀏覽器的本地代碼中,而且速度很快。除非你有理由認爲上述做法很慢,否則我懷疑你不必擔心。

1

你一定要看看.has()方法。

var $branchesWithExpand = $branch.has('.expand'); 
+0

它檢查直接的孩子或像find()一樣深嗎? – Tx3 2011-05-18 09:43:57

+0

它檢查所有的後代,而不僅僅是直接的孩子。 – 2011-05-18 09:50:51

相關問題