jQuery:我可以遍历not()方法

时间:2016-03-28 17:41:22

标签: jquery css dom

我希望在除当前容器之外的所有容器中使用特定类来处理所有其他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')

但这不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

在你的代码中,你试图调用一个独立的siblings()函数(我的意思是不是jQuery对象上的函数),你可能会在你的js控制台中看到{{ {1}}未定义。

要选择所有siblings减去当前元素的兄弟,您可以执行以下操作:JSFiddle

.d

这看起来就像您尝试使用js一样,并且会在整个页面上选择所有 $('.d').not($(this).siblings()).css('backgroundColor', '#d8a'); 除了直接兄弟姐妹目标元素。

如果您的实际DOM与示例一样简单,您可能只想选择父级的兄弟.d个孩子。可以这样做..

.d