javascript - 如何在不传递事件参数的情况下获取触发 "onclick"事件的元素?

标签 javascript dom

在这种情况下,我如何获得触发 onclick 的 DOM 元素:

<div onclick="ajax('?section=panel');">Hi</div>

ajax函数是:

function ajax(url)
{
 alert(caller_element.innerHTML); // I need `caller_element` contain a reference to that DIV
 ...xmlhttp(url)...
}

请注意,我无法更改 HTML,我只能更改 ajax() 函数。

最佳答案

您可以使用 Function.prototype.call 来设置函数的上下文,如下所示:

<div onclick="ajax.call(this, '?section=panel');">Hi</div>
function ajax(url) {
    alert(this.innerHTML);
    ...xmlhttp(url)...
}

不过,将它作为参数传递一样容易。

关于javascript - 如何在不传递事件参数的情况下获取触发 "onclick"事件的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131042/

相关文章:

java - html src 隐藏

javascript - 强制 HTML5 Canvas 使用软件渲染

javascript - 获取 jQuery 和/或 DOM 对象的 HTML 字符串

javascript - 客户端应用程序的全局可变状态

javascript - 为什么我在使用 Array concat 时不断收到 TypeScript 错误 "No overload matches this call"?

javascript - Click on GWT FlowPanel 的处理方式是什么

javascript - Angular 不会分配另一个属性值

javascript - 如何在输入文本字段 HTML 中添加序列号

javascript - 尽管由 ajax 加载,但 DOM 元素只是偶尔创建

javascript - 如何在 Chrome 中将 DOM 存储为 HTML 文件?