我试图选择给定班级的所有元素" class1"在" class2"中没有任何祖先。我认为以下选择器可以工作:
:not(.class2) .class1
我在选择器之间放置一个空格,因为我希望选择不在class2中的所有元素的后代。但这没有用,所以我也尝试将空间改为>
。然而,这也不是很正常。
我创建了一个JSFiddle来展示我的预期与我实际看到的内容。
更新: 这似乎是使用" space"的问题。这是在字面上选择class1的每个元素,它的祖先中有任何元素,而不是" class2",而问题是">&#34 ;是它只选择父不是" class2"不管进一步的祖先是否属于那个班级。
更新2:
在看了@DaniP的例子后,我发现另一种看待问题的方法是从另一个中减去一个集合。所以我尝试.class1:not(.class2 .class1)
,但这显然不起作用,因为:not()
不接受复杂的选择器。