1

我试图在函数触发时捕获目标元素的 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'
}
4

1 回答 1

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);
}
于 2012-09-19T07:22:59.523 回答