我想我很擅长发现为什么事情不工作…但是我很茫然。
我添加这个样式到我的页面,以测试和确保我得到我想要的…
*:not(.myclass):not(.myclass *)
{
background-color: orange !important;
}
由于某些原因,这些选择器
//I've tried this
$("*:not(.myclass):not(.myclass *)");
//and this
$(":not(.myclass):not(.myclass *)");
//and this
$(":not(.myclass)");
//and this
$("*:not(.myclass)");
选择所有项目,而不是所有减去类myclass
及其一些子项目的项目。
因此,当我在jQuery对象上运行自定义方法时,它最终会对所有项目而不是具有myclass
的项目执行此操作。
问题是选择器匹配html
和body
,因为它们没有myclass
类。如果你把它藏起来,你就把一切都藏起来了。使用
$("*:not(.myclass,body,html):not(.myclass *)")