實施例:如何選擇另一個元素(e)的子元素(se),但不包括所選子元素(sse)的子元素之一?
.element
|
|-.subelement
|
|-.subsubelement1
|-.subsubelement2
|-.subsubelement3
|-.non-desired-subsubelement
|-.subsubelement4
所以如何不列出所有期望subsubelements(例如是未知的),但仍然接收聚集的元件及其子元素的.subelement
.subsubelementX
而不.non-desired-subsubelement
:
不是數組:[subsubelement1, subsubelement2, subsubelement3, subsubelement4]
但是聚合元素:subelement
,沒有non-desired-subsubelement
作爲其後裔:
.subelement
|
|-.subsubelement1
|-.subsubelement2
|-.subsubelement3
|-.subsubelement4
我想到這個問題:
$('.element .subelement:not([class^="non-desired-subsubelement"])') // selects subelements which has no class non-desired-subsubelement
將是不錯的東西,如:
$('.element .subelement:not(>>this<<:has([class^="non-desired-subelement"]))')
即使用負 「有」 選擇;或者是這樣的:
$('.element .subelement:has-not([class^="non-desired-subelement"])') // much nicer
或者是容易得到.subelement
,比刪除.non-desired-subsubelement
,這樣做的兩個步驟?
var subelement = $('.element .subelement');
subelement.remove('.non-desired-subsubelement');
可能還有一個複雜的選擇器?
你有什麼問題實際上是..? –
以優雅的方式選擇一個沒有其後代的元素,而不是以多個步驟(如我在問題底部提出的)。換句話說:選擇一個元素的後代沒有不需要的類 – static
試試這個'$('。element .subelement')。not(this).not(':has([class^=''不需要'');');' – dreamweiver