我需要hide()
'.dd-container'
的所有班级元素,除非该元素的id
为'#tools'
。
我尝试了以下(不起作用),但我很确定我捏造了语法:
$('div:has(.dd-container):not(#tools .dd-container)').hide();
答案 0 :(得分:3)
我认为这应该有效:
$("div:not(#tools)").find(".dd-container").hide();
编辑:想想我错误地阅读了这个问题。有一个dd-container
- 类还有id
个工具吗?如果是这样,那么您需要将其更改为:
$("div").find(".dd-container:not(#tools)").hide();
或者:(根据我做了一段时间的一些测试,这应该更快地执行)
$(".dd-container:not(#tools)", "div").hide();
它更快的原因是因为它首先寻找类,而不是寻找所有的div,然后全部通过它们......我想。
答案 1 :(得分:1)
$('div:has(.dd-container):not(#tools.dd-container)').hide();
(注意'#tools'之后空格不足) 或
$('div:has(.dd-container):not(#tools)').hide();
(由于ID是唯一的,你可以省略'not'选择器的类说明符)
答案 2 :(得分:0)
#tools .dd-container
#tools和.dd-container之间有一个空白 这意味着#tools的所有孩子都使用类.dd-container e.g。
<table id="tools"><tr class='dd-container'>
所以#tools.dd-container应该可行,但是peirix的答案更容易理解。