在jQuery append语句中引用对象的ID

时间:2010-03-31 14:02:14

标签: javascript jquery

我有这个元素:

<div class="isthisyou" id="unique_identifier"></div>

我想使用jQuery在div中插入一个链接:

$('isthisyou').append('<a href="auth/create_account/'+this.id+'">Is this you?</a>');

现在this.id正在返回undefined而不是unique_identifier。我做错了什么?

谢谢!

5 个答案:

答案 0 :(得分:1)

总有这个

$this = $('.isthisyou');
$this.append('<a href="auth/create_account/'+$this.attr('id')+'">Is this you?</a>'); 

答案 1 :(得分:1)

失败有三个原因:

  1. 班级foo的选择器应为".foo"而不是"foo"
  2. 每个元素的ID都是可变的;你不能在append()调用中使用相同的值
  3. 在您的代码中,this并不代表您的意思
  4. 请改为尝试:

    $('.isthisyou').each(function(){
        $(this).append('<a href="auth/create_account/'+this.id+'">Is this you?</a>');
    });
    

答案 2 :(得分:0)

对于选择器中的类,使用它作为“.classname”(点),不幸的是你必须通过$(this).attr()来访问id。

$('.isthisyou').append('<a href="auth/create_account/'+$(this).attr("id")+'">Is this you?</a>');

如果$(this).attr(“id”)仍未定义,那意味着$(this)未在追加中设置,您将不得不使用以下内容:

$('.isthisyou').each(function(){
  $(this).append('<a href="auth/create_account/'+$(this).attr("id")+'">Is this you?</a>');
});

答案 3 :(得分:0)

请尝试使用attr

$('isthisyou').append('<a href="auth/create_account/'+$(this).attr('id')+'">Is this you?</a>');

或者如评论所示,您可以尝试:

$('isthisyou').append('<a href="auth/create_account/'+$('isthisyou').attr('id')+'">Is this you?</a>');

答案 4 :(得分:0)

以上两个答案都有小问题。 使用

$('.isthisyou').append('<a href="auth/create_account/'+$(this).attr('id')+'">Is this you?</a>');