2011-10-31 133 views
0

我目前正在发表评论,并且像Facebook上的系统一样。但我无法弄清楚如何选择特定的div!我现在的HTML看起来像这样:jquery显示/隐藏与其他人同级的单个div

<div class='activoptions'><a href='#'>Like</a> <a href='#' class="addcomment">Add commentr</a> <a href='#'>Share</a> 
</div> 
<ul class="addcommentbox"> 
    <li class="commentlist"> 
     <div class="CommentBox"> 
      <div class="CommentBoxPicBox"> 
       <a href=""> 
        <img src="" /> 
       </a> 
      </div> 
      <div class="CommentBoxTextBox"> 
       <div class="CommentBoxTextBoxName">Name</div> 
       <div class="CommentBoxTextBoxText">Some lovely text inside a lovely div</div> 
       <div class="CommentBoxTextBoxTime">x minutes ago - <a href="#">Like</a> 
       </div> 
      </div> 
     </div> 
    </li> 
</ul> 

我已经设置了“CommentBox” CSS来display:none;所以其无形的,我的jQuery的:$(".commentbox").show();

这只是如何jQuery的选择已触发正确的div在上面的代码中不可见的链接,但它被称为“.commentadd”。我在jquery.net论坛上无处不在,我发现这个小代码片段。

$(".addcomment").click(function(){ 
    var $this = $(this); 
    var child = $this.find('.addcommentbox').html(); 
    $(child).show(); 
}); 

编辑:对不起它是如此unprecise ......我会立刻对其进行编辑,更澄清了你.. 好了,所以...我越来越近的所有活动和状态,我给所有他们那HTML结构在上面。我想要的是当有人点击,评论或分享时,只有他们点击的活动才会通过某个Ajax查询并插入到数据库中。

+2

你能更精确一点吗?我不知道你想问什么... – Blender

+0

好的,你找到的代码有什么问题,你能否给我们更多的代码,并且详细说明你希望我们怎样帮助你 – GregM

回答

0
$(".addcomment").click(function(){ 
    $('.CommentBox').show(); 
}); 

应该足够了。试试看,如果遇到新问题,请告诉我。

0

因为我不知道你的HTML结构,我认为你试图在不知道ID的情况下显示DIV。

$(".addcomment").click(function(){ 
    $(this).parent().find('.CommentBox').show(); 
}); 

心灵发布您的HTML结构(包括其中.addcomment是),这样我就可以使代码工作?

0

您可以在 “分区” S添加不同的 “身份证” S和匹配 “ID” 就像这样:

$("#my_id").show(); // or you can use "toggle" to show/hide 

详情:

$(".addcomment").click(function(){ 
    $("#" + $(this).attr('id')).show(); // or toggle 
}); 

我希望我的回答是明确的,我不知道......

+0

我不知道如果多数民众赞成在即时通讯寻找。我已经更新了我的帖子。但即时通讯寻找的是一种方式或脚本 - 选择正确的.addcommentbox中的许多。认为它几乎与facebook上的系统相同:) – Flaashing

0

您的JavaScript不会与你的HTML排队的类都是不同的,但是在脚本中,您发布的评论:

$(".addcomment").click(function(e){ 

    e.preventDefault(); 

    var $this = $(this); 
    var child = $this.find('.addcommentbox').html(); 
    $(child).show(); 
}); 

child是一个文本节点,而不是一个jQuery元素列表。从最后删除.html(),并将显示类“addcommentbox”的div。另一方面,你可能想添加e.preventDefault();以防止链接点击默认行为(如我已经在上面添加)

0

我认为问题是你的html结构。如果你可以在包装中包装整个“添加评论”和“评论框”部分,那么你可以毫无问题地选择它。

看到这个example jsfiddle