2014-07-09 85 views
0

我需要創建一個類似於Facebook評論的功能。例如,如果我點擊評論按鈕,它會向我顯示所有評論,只是從相同的職位。我試圖用jQuery創建,但如果我點擊按鈕,它會顯示我所有帖子中的所有評論。我只需要評論,我點擊了其他人。用jquery顯示評論

有show_com.js:

$(".com_but").click(function() { 
$('.all_com').show(); 
}); 

有風格的CSS:

.all_com{ 
display:none; 
} 

並沒有index.php文件:

<button class='com_but' id="<php echo $post_id; ?>">add comment</button> 
<script src="show_com.js"></script> 
<div class='all_com' id="<php echo $post_id; ?>"> 
<input type='text'/> 
</div> 

$post_id是從帖子的ID(如Facebook的發佈或推特)。

+0

你看過ajax如何處理這個問題嗎? –

+0

您不能在多個元素上使用相同的ID。 – j08691

+0

我還沒有試過給我們ajax。 @ j08691我想。但我怎麼能在多個元素上添加該功能? – user3722203

回答

0

$秀( );無論他們在哪裏,都會顯示所有具有'all_com'級別的div。但你似乎打算只顯示與所點擊的按鈕相同的父代的子代的'all_coms'。對?

在這種情況下,你應該有這樣的:

<script src="show_com.js"></script> 
<div class="container"> 
    <button class='com_but' id="<php echo $post_id; ?>">add comment</button> 
    <div class='all_com' id="<php echo $post_id; ?>"> 
    <input type='text'/> 
    </div> 
</div> 

和你的函數將是這樣的:

$(".com_but").click(function() { 
    $('.all_com',$(this).parent()).show(); 
}); 

這將只顯示包含的父類內all_com的元素點擊按鈕。 希望這有助於。

+0

你真棒。非常感謝。有用。完善。非常感謝你。 @skarist – user3722203

0

如果您只想顯示與點擊位於同一層次結構中的註釋,則通常的做法是從點擊的位置(由$(this)表示)開始,直至該節DOM(使用.closest(selector)),然後查找該共同父項中的所有感興趣項目(使用.find())。

你不顯示你的HTML的足以讓我們知道,普通家長選擇會是什麼,但總的想法是這樣的:(「 all_com」)。

$(".com_but").click(function() { 
    $(this).closest(common parent selector here).find('.all_com').show(); 
}); 
+0

沒有工作,或者我做錯了什麼。我添加了'id_o =「<?php $ post_id;?>」'並且爲jquery添加了'$(this).closest(id_o).find('。all_com')。show();'。這錯了? @ jfriend00 – user3722203

+0

@ user3722203 - 如果您需要準確,真實的幫助,請發佈包含父母的生成HTML。請不要發佈您的模板,因爲我們需要查看瀏覽器(和JavaScript)所看到的內容。如果在您的實際HTML上正確實施,此概念就可以正常工作。與'.closest()'一起使用的選擇器應該是你在HTML的這些塊中的每一箇中具有共同父項的一些類名。這將是一個包含按鈕和相關的all_com div的父代。我不知道你爲什麼要使用某個ID - 這不是這樣做的。 – jfriend00

+0

感謝您的幫助,我解決了這個問題。 @ jfriend00 – user3722203