Jquery获取clicked元素的id并显示隐藏的子div

时间:2013-10-03 09:57:28

标签: php jquery

我有一系列评论,应该可以回答评论。

<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();
});

但这确实不起作用......

有人可以帮助我吗?

4 个答案:

答案 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();
 });