我有一系列评论,应该可以回答评论。
<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 :(得分:1)
由于要显示的div
似乎是下一个兄弟,所以使用.next()
来查找元素
$('.answerBtn').click(function(){
$(this).next().slideToggle();
});
答案 1 :(得分:0)
以下行仅关注标记 id
:
$('id + div').slideToggle();
根本不使用变量id
。
相反,请使用以下内容:
$('#' + id + ' + div').slideToggle();
答案 2 :(得分:0)
我认为更好的方法是将相同的id分配给包含
形式的div<a href="#" class="answerBtn" id="<?=$comment->id ?>">Answer</a>
<div id="answerDiv_<?=$comment->id ?>" style="display:none;"> ... </div>
然后在点击div
时显示相应的.answerBtn
:
$('.answerBtn').click(function(){
var id = $(this).attr('id');
$('div#answerDiv_'+id).slideToggle();
});
答案 3 :(得分:0)
将评论的ID附加到 div ,如:
<div id="answerDiv<?=$comment->id ?>" style="display:none;">
并在脚本中尝试
$('.answerBtn').click(function(){
var id = $(this).attr('id');
$('#answerDiv'+id).slideToggle();
});