標題是有點混亂的元素,但這裏是我所追求的:如何選擇一組是另一種元素的兒童
我有一組包含所有在該
h3
元素的元素頁。
用jQuery語言:var mySet = $('h3')
。我也有一個div元素
var myContainer = $('div#foo')
我需要找到一組
mySet
是的myContainer
兒童的所有項目。
任何想法?我敢打賭,這裏有一些神奇的襯墊,但我想不出來。我寧願不是手動循環遍歷集合中的每個元素,並使用.closest(myContainer)
或類似的東西來確定關係。
請注意,在我的場景中,我不能使用像$('div#foo h3')
這樣的新選擇器(這太容易了),因爲我沒有訪問實際的選擇器值。所以它必須是動態的。
就像通過myContainer.children循環一樣,然後比較每個mySet(最差的情況)。 – unomi 2010-06-16 09:39:30
@unomi - 這基本上是相交的兩組,所以是的,你必須經歷兩者。就複雜性而言,它可以在'nlogn'中完成,而這可能是'n²'。請注意,我並沒有假設有一位父母。 – Kobi 2010-06-16 09:47:57
我的答案是我的意思是,最初的選擇器實際上是可用的,就像Andy E所證實的那樣 - 但是正如你後來所說的那樣,它們可能不一定是「純粹的」選擇器生成的列表,它使我的建議沒有意義。如果性能是一個問題,您應該確保smallset.filter(largeset)並可選地從大集合中刪除匹配。 – unomi 2010-06-16 09:56:56