2013-10-03 249 views
0

我有一個評論數組,並且應該可以回答評論。jquery得到點擊元素的id並顯示隱藏的子div

<div> 
<a href="#" class="answerBtn" id="<?=$comment->id ?>">Answer</a> 
    <div id="answerDiv" style="display:none;"> 
     <form action="" method="POST"> 
      <input type="hidden" value="<?=$comment->id ?>"/> 
       <p> 
        <label>Your name*</label> 
       <br /> 
        <input type="text" name="answer_username" id="answer_username" required /> 
       </p> 
       <p> 
        <label>Your Email (optional)</label> 
       <br /> 
         <input type="text" name="answer_email" /> 
       </p> 
       <p> 
        <label>Your comment*</label> 
       <br /> 
       <textarea name="answer_message" required></textarea> 
       </p> 
       <input type="hidden" value="<?=base_url()?>" id="answer_baseurl"/> 
       <input type="submit" value="Send"/>        
       </form> 
       </div> 

我想點擊鏈接時,顯示的形式,但由於每個註釋具有相同的形式我必須要具體,所以我要展示取決於評論的ID形式。所以我想是這樣的使用jQuery:

$('.answerBtn').click(function(){ 
    var id = $(this).attr('id'); 
    $('id + div').slideToggle(); 
}); 

但並沒有真正的工作...

有人可以幫我嗎?

回答

0

下面一行只關心標籤id

$('id + div').slideToggle(); 

它不使用變量id可言。

相反,使用以下命令:

$('#' + id + ' + div').slideToggle(); 
1

由於div要顯示的似乎是下一個兄弟,用.next()找到元素

$('.answerBtn').click(function(){ 
    $(this).next().slideToggle(); 
}); 
+0

這個偉大的工程!非常感謝! – hausinho

0

我認爲更好的辦法是將相同的id分配給持有格式的div

<a href="#" class="answerBtn" id="<?=$comment->id ?>">Answer</a> 

<div id="answerDiv_<?=$comment->id ?>" style="display:none;"> ... </div> 

然後顯示一個更正esponding div.answerBtn點:

$('.answerBtn').click(function(){ 
    var id = $(this).attr('id'); 
    $('div#answerDiv_'+id).slideToggle(); 
}); 
0

追加評論的ID DIV也喜歡:

<div id="answerDiv<?=$comment->id ?>" style="display:none;"> 

和腳本,儘量

$('.answerBtn').click(function(){ 
    var id = $(this).attr('id'); 
    $('#answerDiv'+id).slideToggle(); 
});