实施例:如何选择另一个元素(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