适用于兄弟姐妹/儿童/家长的JQuery选择器

时间:2014-01-06 14:23:27

标签: jquery dom

所以我觉得我的头衔几乎是模棱两可的,但事实是我甚至不确定如何澄清...因此问题。

HTML

<tr>  
  <div class="thisis(this)inmyexample"></div>
  <div class="stuff">
    <div class="foo"></div>
  </div>
</tr>

我的问题在于选择器的不同之处。我们假设.stuff$(this)的兄弟,如果我使用它:

$(this).closest('tr').find('.stuff .foo')

现在,我意识到这不是有效的编码,但它只是一个简单的例子。有了它,我会找到.foo的所有.stuff类{。}}。

如果我使用它:

$(this).siblings('.stuff .foo')

我什么都找不到。这可能是我对jquery说话的经验不足,但是为什么不会那种选择器(你称之为使用空格的选择器,或者像'.stuff.foo'一样同时使用?)使用像.siblings这样的东西?我的期望是,它会找到所有同级.stuff的兄弟姐妹,然后找到所有.stuff的孩子,其班级为.foo。它不起作用,因为兄弟姐妹/孩子/父母正在寻找兄弟姐妹/父母/孩子而不会过去吗?

我知道我可以用这个:

$(this).siblings('.stuff').children('.foo')

我实现了我的目标。我只是好奇为什么我的上面的选择器(如果它被正确调用它)不起作用。

提前致谢!

1 个答案:

答案 0 :(得分:2)

你回答了自己的问题,你找不到任何与$(this).siblings('。stuff .foo')的东西,因为.foo不是$(这个)的兄弟,它有点像'孙子'使用那个选择器,它会找到.ff父母的.foo兄弟,而你有$(this),。。和.foo的兄弟,.stuff的孩子,而不是$(这个)的兄弟