應用li a
和li:has(a)
顯示出不同的結果。但是,爲什麼呢?他們不應該做同樣的事嗎?jQuery - 爲什麼`li a`和`li:有(a)`不同?
回答
難道他們不應該做同樣的事嗎?
否。在第一個示例中,您選擇了li
中的所有a
;在第二個中,您選擇的所有li
的a
。
從manual,重點煤礦:
說明:選擇包含所指定的選擇相匹配的至少一種元素的元素。
表達
$('div:has(p)')
匹配<div>
如果<p>
其後代中任何地方存在,不只是作爲一個直接的孩子。
當你說:**在第一個例子中,你選擇'li'中的所有'a';在第二個例子中,你選擇了所有具有'a' **的'li',這仍然有點令人困惑。當我選擇'li'中的所有'a'時,這並不意味着'li'必須包含'a',否則它不會被選中,哪一個與第二個一樣?你可以簡化它嗎?謝謝 – Simplicity
@ Med-SWEng第一個選擇器會得到A元素,第二個選擇器會得到LI元素。這是區別... –
@MedŠime說得很好。這種差異是否明顯? 「有」是「li」的一個屬性。它的意思是「給我所有具有至少一個」a「型孩子的李元素。 –
- 1. jQuery/CSS - 目標li a而不是li?
- 2. 如何<li><a></a></li>
- 3. Chrome malforma li> a> ul> li> a HTML
- 4. 如何在ul li a中傾斜ul li而不是<a>?
- 5. 跳過禁用li/a
- 6. A a有什麼區別?和A a();?
- 7. 爲什麼(!a)和(a == false)不相等?
- 8. 爲什麼`A&a = a`有效?
- 9. a,&a和* a有什麼區別?
- 10. 當點擊時排除單個li a
- 11. 爲什麼`a + = x`和`a = a + x`爲嵌套列表實現不同?
- 12. 如何追加合併兩個值中的jQuery <UL ID = 「MYLIST」><li><a >First</a><a>二</a></li></ul>
- 13. jquery不爲li工作
- 14. 「#someid ul li.someclass a」和「#someid ul li .someclass a」之間的區別? (注意空白)
- 15. 「struct a a1 = {0};」不同於「struct a a2 = {5};」爲什麼?
- 16. git commit -a與-a -m有什麼不同?
- 17. a + = b和a = + b之間的區別是什麼,a ++和++ a?
- 18. 如何根據使用jQuery的文本選擇li a
- 19. 從UL LI中刪除類但不是UL LI使用jQuery的UL LI LI
- 20. REGEX:爲什麼'^([a-z] | a)$'與'a'不匹配?
- 21. 演員之間有什麼區別:(A)x和x爲A?
- 22. 什麼是後{a = 5; A = A ++; Syso(a);}
- 23. CSS a塊被ul,li,/ li所包圍的時候向右移動
- 24. 爲什麼「a + + b」有效,但「a ++ b」不能?
- 25. 不同之間!a == -1和a!= -1
- 26. 爲什麼sprank(A)和A \ b在matlab中報告不同的等級?
- 27. OOP PHP中變量$ a和變量$ this-> a有什麼不同?
- 28. 如何更改li和a的背景顏色?
- 29. 爲什麼「#define A」會干擾「namespace A {}」?
- 30. 爲什麼a是2130567168 for a C++?
'li a'匹配所有具有LI祖先的A元素; li:有(a)'匹配具有A後代的所有LI元素。 –
@ŠimeVidas。你能澄清更多的區別嗎?它仍然不清楚 – Simplicity
顯然,我曾經在這裏寫過一個用行話填充的答案來解答同一個問題:http://stackoverflow.com/questions/5067081/jquery-what-is-the-difference-between-the-descendant-selector -and-the-has-selec但是對Pekka的回答的評論應該足夠簡單。 – BoltClock