Example:
.element
|
|-.subelement
|
|-.subsubelement1
|-.subsubelement2
|-.subsubelement3
|-.non-desired-subsubelement
|-.subsubelement4
So how not to list all desired subsubelements (eg is unknown), but still receive an aggregated element .subelement
of its subelements .subsubelementX
without .non-desired-subsubelement
:
NOT an array : [subsubelement1, subsubelement2, subsubelement3, subsubelement4]
BUT an aggregate element : subelement
, without non-desired-subsubelement
as its descendant:
.subelement
|
|-.subsubelement1
|-.subsubelement2
|-.subsubelement3
|-.subsubelement4
I thought about this:
$('.element .subelement:not([class^="non-desired-subsubelement"])') // selects subelements which has no class non-desired-subsubelement
would be nice to have something like:
$('.element .subelement:not(>>this<<:has([class^="non-desired-subelement"]))')
ie uses negative "has" selector; or something like:
$('.element .subelement:has-not([class^="non-desired-subelement"])') // much nicer
Or is it easier to get the .subelement
and than remove the .non-desired-subsubelement
, so to do it in two steps?
var subelement = $('.element .subelement');
subelement.remove('.non-desired-subsubelement');
May be there is still a complex selector?
您可以尝试以下方法:
$('.element .subelement [class^="sub"])
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.