我尝试在触发函数时捕获目标元素的id,但this
关键字返回undefined
--- HTML文件。 ---(我无法在onclick函数中添加任何参数)
我在页面中有很多<a>
标记,想要识别点击了<a>
个标记。
<a href="#some_links" id="element_id" onclick = "object.pageName.functionName('parms1', 'parms2', 'parms3')">Get this object</a>
<a href="#some_links" id="second_element_id" onclick = "object.pageName.functionName('parms1', 'parms2', 'parms3')">Get this object</a>
--- .js文件---
object.pageName.functionName = function(a, b, c){
alert(this); // returns 'undefined'
}
答案 0 :(得分:3)
这是StackOverflow上一个非常常见的问题。
简而言之,你的onclick包含在一个匿名函数中(它可以访问this
。你必须传递它。
--- HTML文件。 ---
<a href="#some_links" id="element_id" onclick = "object.pageName.functionName(this, 'parms1', 'parms2', 'parms3')">Get this object</a>
--- .js文件---
object.pageName.functionName = function(self, a, b, c){
alert(self); // returns 'undefined'
}
这是另一种方式:
object.pageName.functionName = function(a, b, c){
// Downside of this way, you can only use this function for one element.
self = document.getElementById("element_id");
alert(self);
}