考虑以下html:
<div>
<div class="iwant" />
<div class="idontwant" />
</div>
<div>
<div class="iwant" />
</div>
我对选择器(用于抓取内容以便我无法修改html)感兴趣,该选择器会选择所有不与类iwant
同胞的idontwant
。
答案 0 :(得分:45)
没有兄弟选择器可以按类匹配(或不匹配)元素。
我能想到的最接近的选择器是
.iwant:only-child
但是这个选择器意味着除了div class="iwant"
之外不能有任何其他元素作为父div
的子元素,无论类型或类如何。这可能会满足您的需求,具体取决于HTML的结构,所以值得一试。如果类名对你来说是一个问题,那么可能没有太多解决方案,因为CSS中没有:only-of-class
伪类,它按类过滤并忽略其余的。
答案 1 :(得分:3)
没有负面兄弟的CSS选择器。使用兄弟选择器设置新样式,然后在.idontwant
:
div.iwant {
/*Set CSS here*/
display: inline;
}
div.iwant ~ div.idontwant {
/*Reset CSS*/
display: block /* Default of DIV is block*/
}
答案 2 :(得分:2)
没有特定的兄弟项目,没有很好的方法来定位项目。但您可以使用.iwant:last-child
来定位没有后续兄弟的项目。