JQuery不显眼地通过唯一ID获取链接

时间:2011-11-23 21:58:49

标签: jquery

我正在尝试为我网站上的帖子创建评论表单。我想建立一个链接,点击时显示评论表单。反过来,每页会有多个帖子,因此每个链接都是唯一的。我想使用不引人注目的javascript来实现这一点,但我对如何在JQuery中使用唯一ID感到困惑。

例如:

<a href="#" id="comment_1234">Comment</a>

<div id="comment_form_1234">
    form goes here
</div>

$("#comment_?").click(function(){
    $("#comment_form_?").show();
});

感谢任何帮助。

谢谢你,

布赖恩

3 个答案:

答案 0 :(得分:3)

我会像这样构建HTML:

<a href="#" class="comment" data-id="1234">Comment</a>

<div class="comment_form" data-id="1234">
    form goes here
</div>

使用此脚本:

$(".comment").on('click', function(){
    $('.comment_form[data-id="' + $(this).attr('data-id') + '"]').show();
}); 

答案 1 :(得分:0)

你可以试试 -

$('a[id^="comment_"]').click(function(){
    $("#" + this.id.replace("comment_","comment_form_")).show();
});

应触发所有评论链接,然后您可以操纵所点击元素的ID以显示相关表单。

演示 - http://jsfiddle.net/Zjs92/

答案 2 :(得分:0)

为什么不拥有

<a href="#" class="comment" data-id="1234">Comment</a>

和单个表单区域

<div class="comment_form" data-id="">
</div>

使用像这样的jQuery

$('.comment').on('click', function(e) {
    $('.comment_form').attr('data-id', $(this).attr('data-id')).show();

    if (e.preventDefault) {
        e.preventDefault();
    }
    return false;
});