我想所有的這些具有'.divRe'
類,其中包含一個'.divAbs'
類jQuery兄弟姐妹與子類?
http://jsbin.com/uyirim/edit#javascript,html
爲什麼它不工作的點擊的元素的「siblings
」?
(它的長度假設爲「」。)
我想所有的這些具有'.divRe'
類,其中包含一個'.divAbs'
類jQuery兄弟姐妹與子類?
http://jsbin.com/uyirim/edit#javascript,html
爲什麼它不工作的點擊的元素的「siblings
」?
(它的長度假設爲「」。)
從docs:
獲取每個元素的兄弟姐妹中匹配的元素,任選地通過一個選擇器過濾的。
鏈接的唯一兄弟是div
,它與選擇器.divRe .divAbs
不匹配。 $('.divRe').is('.divRe .divAbs')
返回false
。
你想將它與.find()
結合:
$(this).siblings(".divRe").find(".divAbs")
編輯:好像你正在.has
而不是.find
後真的。看看其他答案。
.divRe .divAbs表示裏面有divAbs的所有divRebs ...不是? –
@RoyiNamir:這取決於您將選擇器傳遞給哪個函數。再次閱讀文檔。它說'.siblings()'得到元素的所有兄弟的列表。在你的情況下,唯一的兄弟是'div'。然後它只保留那些匹配選擇器的元素,'div'不匹配'.divRe .divAbs'。在這種情況下,選擇器*不用於*查找*元素。它用於*過濾*已有的一組元素(同胞)。 –
".divRe .divAbs"
選擇器匹配內部div .divAbs
,這不是兄弟姐妹。
您可以使用has()
:
$(this).siblings(".divRe").has(".divAbs").length
你的解釋不正確。在這種情況下,「.divRe .divAbs」將匹配具有'divAbs'類的元素和類'divRe'的祖先。 –
@FelixKling是的,你正在寫。 – xdazz
@xdazz,這是不對的。如果你希望both.a和.b如此$(「。a.b」) –
如果.divRe有一個以上的(比如2).divAbs這個
$(this).siblings(".divRe").find(".divAbs").length
將返回2
但這
$(this).siblings(".divRe").has(".divAbs").length
將給出1.
因此,您需要使用has()方法。
我明白英語可能不是您的第一語言,但我不知道您想說什麼。 – switz