2013-04-30 52 views
3

如何找到下一课“评论”并在点击“阅读”后显示它?如何用jQuery找到下一个元素?

<div class="preview"> 
<div class="messages"> 
    <div class="msg"> 
     <div class="circle left"><img src=""></div> 
     <div class="name">Lars Mehrhoff</div> 
     <div class="sep_20"></div> 
     <a href="#" class="read"><i class="icon-comment"></i></a> 
     <a href="#" class="reply"><i class="icon-reply"></i></a> 
     <a href="#" class="read"><i class="icon-ok"></i></a> 
     <a href="#" class="trash"><i class="icon-trash"></i></a> 
     <div class="comment">ASD</div> 
    </div> 

    <div class="clearfix"></div> 

    <div class="msg"> 
     <div class="circle left"><img src=""></div> 
     <div class="name">Lars Mehrhoff</div> 
     <div class="sep_20"></div> 
     <a href="#" class="read"><i class="icon-comment"></i></a> 
     <a href="#" class="reply"><i class="icon-reply"></i></a> 
     <a href="#" class="read"><i class="icon-ok"></i></a> 
     <a href="#" class="trash"><i class="icon-trash"></i></a> 
     <div class="comment">ASD</div> 
    </div> 
</div> 

我的jQuery代码是这样的:

$('.read').click(function(e) { 
    $(this).find('.comment').show(); 
}); 

$('.comment').hide(); 

我将只显示注释旁边的 “读”

+1

如果'siblings'是不够的你:HTTP ://stackoverflow.com/a/30089307/274502 – cregox 2015-05-06 23:24:42

回答

4

你可以利用.siblings()方法:

$(this).siblings(".comment").show(); 
+0

谢谢,很好用;) – Evolutio 2013-04-30 14:01:08

+1

我怀疑'.next()'会与他的结构一起工作,因为它不是下一个直接的兄弟姐妹g'read' – 2013-04-30 14:05:51

+0

我觉得在这种情况下,有线是正确的。 'siblings()'会起作用,但仅仅是因为有一个节点的'.comment'类与''.read'元素被点击的同一级别。 – antony 2013-04-30 14:10:11

1

尝试$(this).siblings('.comment').show();

0

你可以尝试以下

$('.read').click(function(e) { 

    $(this).parent().find('.comment').show(); 
}); 

$('.comment').hide(); 

我希望它能够帮助