如何获取调用者事件和dom元素id

Jin*_*esh 17 javascript

<script>
function Hello(){
    var caller =  arguments.callee.caller;
    alert( caller );
}
</script>

<input type="button" id="btnHello" value="Hello" onclick="Hello()" />
Run Code Online (Sandbox Code Playgroud)

如何从上面的Hello函数中获取按钮id,而不传递Hello函数中的any参数

ste*_*r25 27

事件对象自动传递给Hello函数.您需要将其作为参数接收,然后执行一些跨平台工作来获取元素.JS框架将在这里帮助您.

function Hello(e){
    var caller = e.target || e.srcElement;
    console.log( caller );
}
Run Code Online (Sandbox Code Playgroud)

编辑
+1安德鲁的评论如下.使用addEventListener和attachEvent进行最佳实践.

  • IIRC,你可以通过将`onlick`属性设置为"Hello(event)"来获得它. (4认同)
  • 只有在使用btnid.onclick = function(e){alert(e.target)}时才会传递event对象; 但是当我们将事件应用为内联时,如何获取事件对象. (2认同)
  • 使用不显眼的JavaScript附加事件而不是使用内联事件处理程序,然后您可以使用传递给事件回调的事件对象. (2认同)