我试图获取身份证,只是简单地提醒他点击,但是确实只是"未定义" ... 你能帮我吗? 重要代码: HTML:
<img src="/pictures/picture.jpg" class="r-gal-photo" id='1' onclick="alertme()" />
jQuery的:
function alertme() {
alert($(this).attr('id'));
}
你能看到问题吗?我不能...... 我的错: 对不起,我想简化代码,但我没有意识到我使用了&#34; alert()&#34;作为自定义功能的名称。
答案 0 :(得分:1)
要解决的第一个问题是函数名称,我怀疑它在您的实际代码中有所不同,因为否则您将无法获得它。
您已使用旧式“onclick”属性将该功能与该元素相关联。没有什么能保证this
会像你期望的那样绑定到元素。您可以更改元素:
最好是使用jQuery来绑定处理程序:
$("#1").on("click", function() {
alert(this.id);
});
答案 1 :(得分:0)
this
关键字的背景。
this
指的是CALL ITSELF中的DOM元素(正如您所想的那样),但是一旦调用alertme()
,它就没有在其范围内定义。
要看到它你可以看看这个JS:
function alertme(){
alert($(this).attr('id'));
console.log(this);
}
和这个HTML标记:
<img src="/pictures/picture.jpg" class="r-gal-photo" id='abc' onclick="console.log(this); alertme()" />
你会看到你首先进入控制台的元素,然后是警报'undefined',然后是控制台窗口。
this
的含义:
仅在HTML中将标记更改为
<img src="/pictures/picture.jpg" class="r-gal-photo" id='abc' onclick="alertme.call(this)" />
它将与您的alertme()一起使用。
或者你可以将this
传递给alertme
,如下所示:
function alertme(elem){
alert($(elem).attr('id'));
}
HTML:
<img src="/pictures/picture.jpg" class="r-gal-photo" id='abc' onclick="alertme(this)" />
来源: