2011-10-31 62 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