回答
parent > child選擇器只會尋找直接子元素,而ancestor descendant
將尋找任何後代元素。
例如,下面的標記:
<div class="foo">
<div>
<div class="bar"></div>
</div>
</div>
$('.foo > .bar')
將找不到.bar
元素,而$('.foo .bar')
確實發現它,因爲.foo
不是來自.bar
直接孩子,但它是一個後代。
在這個例子中,是的,他們會返回相同的東西。
這不起作用,因爲您沒有指定要查找的元素。您需要將#e> #f或#e #f抓取您的ID。
如果這是一個真實的場景,#e> #f將只能找到孩子,沒有嵌套在下面。 #e #f將抓取任何id =「f」元素,無論它們嵌套在結構中多遠。
首先,我假設你的意思是$('#e > #f')
和$('#e #f')
。
在你的例子中,他們都會返回相同的東西。不同的是,$('#e #f')
也將在這種情況下返回一個div:
<div id="e">
<div id="g">
<div id="f"></div>
</div>
</div>
$('#e > #f')
,而另一方面,會不會有什麼回報,因爲它只會選擇其中的直接子等元素元素。
你的假設是正確的,因爲這是我最初發布的內容的逐字。謝謝您的回答。 – 2009-11-10 00:31:57
啊,對不起 - 我不知道爲什麼,我以爲你發佈了'$('e> f')'。我一定有誤讀。 – igul222 2009-11-10 02:48:44
是的,因爲HTML中沒有e
或f
元素,它們將始終返回空的jQuery對象。
如果該元素是id="e"
元素的直接後綴,則調用$('#e > #f')
將返回元素id="f"
。
電話$('#e #f')
將返回元素與id=f
,如果它是在id="e"
元素內的某個地方。
編輯:
注意:由於問題在我回答後進行了編輯,第一句不適用於問題目前的樣子。
閱讀'有了這個標記'下的第一部分:';然後改述你的第一句話。 – 2009-11-10 00:32:46
@Alexsander:我明白了,我在寫完答案後改變了你的問題。 – Guffa 2009-11-10 01:25:19
- 1. 這些選擇器有什麼區別?
- 2. 這兩個選擇器使用「:not」有什麼區別?
- 3. 這兩個css選擇器有什麼區別?
- 4. 這兩個選擇器有什麼區別?
- 5. 有什麼區別? +選擇+選項+ jQuery
- 6. 這些jQuery選擇器有什麼區別嗎?
- 7. jquery選擇器和js選擇器有什麼區別?
- 8. 這個jQuery選擇器選擇什麼?
- 9. 這兩個類有什麼區別?
- 10. 這兩個Coffeescript有什麼區別?
- 11. 這兩個SQL有什麼區別?
- 12. 這兩個main.m有什麼區別?
- 13. 這兩個命令有什麼區別?
- 14. 這兩個代碼有什麼區別?
- 15. 這兩個聲明有什麼區別?
- 16. 這兩個查詢有什麼區別?
- 17. 這兩個陳述有什麼區別?
- 18. 這兩個聲明有什麼區別?
- 19. 這兩個....之間有什麼區別?
- 20. 這兩個ViewController Pushes有什麼區別?
- 21. 這兩個查詢有什麼區別?
- 22. 這兩個實現有什麼區別?
- 23. 這兩個按鈕有什麼區別?
- 24. 這兩個定義有什麼區別?
- 25. 這兩個數組有什麼區別?
- 26. 這兩個代碼有什麼區別
- 27. 這兩個typedefs有什麼區別?
- 28. 這兩個查詢有什麼區別
- 29. 這兩個聲明有什麼區別?
- 30. 這兩個java有什麼區別arrayList.add()
有了這個標記,是的。 – 2009-11-10 10:24:59