我希望在除当前容器之外的所有容器中使用特定类来处理所有其他DOM元素。我可以在not
方法内遍历兄弟姐妹吗?
示例代码结构(所有div都有一些内容在这里省略):
<div class="x">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>
</div>
<div class="y">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>
</div>
<div class="z">
<div class="a"></div>
<div class="b"></div>
<div class="c"></div>
<div class="d"></div>
</div>
编辑(在得到正确的答案之后......):(抱歉,在将我的实际情况转移到此示例结构时,我的问题出错了):
点击带有.b
类的第二个元素(即选择器$('.y .b')
时,我想设置(实际上重置)color
类{ {1}}在另外两个元素中,即选择器.d
和$('.x .d')
。在实际情况中,有更多元素,我想避免使用太长(和所有不同)的选择器必须使用。
所以我想的是像
这样的东西$('.z .d')
但这不起作用。有什么建议吗?
答案 0 :(得分:2)
在你的代码中,你试图调用一个独立的siblings()
函数(我的意思是不是jQuery对象上的函数),你可能会在你的js控制台中看到{{ {1}}未定义。
要选择所有siblings
减去当前元素的兄弟,您可以执行以下操作:JSFiddle
.d
这看起来就像您尝试使用js一样,并且会在整个页面上选择所有 $('.d').not($(this).siblings()).css('backgroundColor', '#d8a');
除了直接兄弟姐妹目标元素。
如果您的实际DOM与示例一样简单,您可能只想选择父级的兄弟.d
个孩子。可以这样做..
.d