2010-05-13 64 views
2

如何选择当前节点的同级节点? 下面是摘录:jquery选择当前节点的同级节点

<div id="main"> 
    <a class="test" href="test.html">Hello</a> 
    <div>Some text</div> 
</div> 

//script 
$(".test").click(function() { $("this:parent > div").toggle(); }); 
or 
$(".test").click(function() { $("this ~ div").toggle(); }); 

这些作品都没有。我知道我可以使用$(this)访问当前对象,但在这种情况下,我不知道如何。

+0

当你把'this'在引号中,它成为选择器的一部分,就像你正在寻找一个带有“this”作为tagName的元素一样,如''。 – user113716 2010-05-13 01:03:45

+0

我对引语感到困惑!感谢您的解释。 – priyank 2010-05-13 01:15:23

回答

5

这里有几个选项:

$(".test").click(function() { 
    $(this).next('div').toggle(); 
}); 

$(".test").click(function() { 
    $(this).siblings('div').toggle(); 
}); 

$(".test").click(function() { 
    $(this).closest('div#main').find('div').toggle(); 
}); 

只是取决于还有什么是在哪一个你希望你的HTML标记选择。

0

你想切换#main div吗?如果是这样,.parent()会不会给你父母的div?

http://api.jquery.com/parent/

我会认为你必须使用类似:

$(".test").click(function() { $(this).parent("div").toggle(); }); 
+0

他的问题似乎很清楚,他想要兄弟姐妹,而不是父母。 – user113716 2010-05-13 00:57:35

0

您可以重新范围的选择:

$(".test").click(function() { $("~ div", this).toggle(); });