0

可能重复:
我试图在函数触发时获取目标元素的 id,但this关键字返回undefined

--- HTML 文件 ---

<a href="#link_1" id="id_0" onclick = "getElement('parms1', 'parms2', 'parms3')">0</a>
<a href="#link_2" id="id_1" onclick = "getElement('parms1', 'parms2', 'parms3')">1</a>
<a href="#link_1" id="id_2" onclick = "getElement('parms1', 'parms2', 'parms3')">2</a>

--- Js文件---

function getElement = function(a, b, c){
    // trying to get the clicked element
    alert(this); // returns 'undefined'
}

注意:我不能在onclick函数中修改/添加/删除参数,但是我可以在js文件中添加/删除参数

问题:如何在不修改 onclick 函数参数的情况下识别单击了哪个元素?

4

1 回答 1

1

简单修复:

将 HTML 更改为:

<a href="#link_1" id="id_0" onclick = "getElement('parms1', 'parms2', 'parms3',this,event)">0</a>

函数定义为:

//function getElement = function(){};doesn't really make sense...
function getElement (a, b, c,clicked,e)
{
    alert(clicked.id);//alerts id of clicked link
    alert((e.target || e.srcElement).id);//via the event object
}

所以选择是你的,要么传递this和传递event给函数,要么只是event,或者只是this,你很高兴。

不过,您可能希望考虑委托此类事件

于 2012-09-19T08:40:19.727 回答