我正在尝试使用 jquery 选择器
"body *:not(.class)"
将事件绑定到页面上除给定类之外的所有内容(请参阅http://jsfiddle.net/MMrRb/)
当我这样做时, :not 子句将被忽略。有人知道为什么吗?我解决它的唯一方法是一个单独的 jquery 子句来反转“*”应用的内容
我正在尝试使用 jquery 选择器
"body *:not(.class)"
将事件绑定到页面上除给定类之外的所有内容(请参阅http://jsfiddle.net/MMrRb/)
当我这样做时, :not 子句将被忽略。有人知道为什么吗?我解决它的唯一方法是一个单独的 jquery 子句来反转“*”应用的内容
它工作得很好。如果您检查小提琴中的 DOM,您将看到您的.two
元素没有color: red
. 但是,你的ul
。因为你.two
在你的ul
里面,所以它继承了颜色。
话虽如此,*
您的选择器中的 是不需要的。您可以删除它,它仍然会选择相同的元素。
这是因为样式也应用于ul
元素,并且two
是的子元素ul
所以css规则被元素继承
我的解决方案是将规则仅应用于叶节点,请尝试以下解决方案
$(function() {
$("body :not(.two):not(:has(*))").css("color", "red");
});
演示:小提琴
注意:这将是非常昂贵的......因此,如果您在成本分析后获得任何其他解决方案,请选择它