我需要hide()
所有类级别的元素,'.dd-container'
除非该元素具有id
of '#tools'
。
我尝试了以下(不起作用),但我很确定我捏造了语法:
$('div:has(.dd-container):not(#tools .dd-container)').hide();
我需要hide()
所有类级别的元素,'.dd-container'
除非该元素具有id
of '#tools'
。
我尝试了以下(不起作用),但我很确定我捏造了语法:
$('div:has(.dd-container):not(#tools .dd-container)').hide();
我认为这应该有效:
$("div:not(#tools)").find(".dd-container").hide();
编辑:认为我误读了这个问题。有没有一个dd-container
类也有一个id
工具?如果是这样,那么您需要将其更改为:
$("div").find(".dd-container:not(#tools)").hide();
或者这个:(根据我不久前做的一些测试,它应该执行得更快)
$(".dd-container:not(#tools)", "div").hide();
它更快的原因是因为它首先寻找类,而不是寻找所有的div,然后遍历它们……我想。
$('div:has(.dd-container):not(#tools.dd-container)').hide();
(注意“#tools”后没有空格)或
$('div:has(.dd-container):not(#tools)').hide();
(由于 id 是唯一的,您可能可以省去 'not' 选择器的类说明符)
#tools .dd-container
#tools 和 .dd-container 之间有一个空格,这意味着 #tools 的所有子级具有 .dd-container 类,例如
<table id="tools"><tr class='dd-container'>
所以 #tools.dd-container 应该可以工作,但是 peirix 的答案更容易阅读。