如何获取触发“onclick”的元素没有传递事件参数的事件?

发布于 2024-11-30 19:43:36 字数 377 浏览 5 评论 0原文

在这种情况下,我如何获取触发 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() 函数。

How can i get the DOM element which fired onclick, in this situation :

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

and the ajax function is :

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

Note that i cannot change HTML, i can only change ajax() function.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

话少心凉 2024-12-07 19:43:36

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

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

不过,将其作为参数传递也同样容易。

You can use Function.prototype.call to set the context of a function, like so:

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

It would be just as easy to pass it as an argument, though.

木落 2024-12-07 19:43:36

试试这个 HTML 代码:

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

和 JS:

function ajax(caller_element, url)
{
 alert(caller_element.innerHTML);
 ...xmlhttp(url)...
}

Try this HTML code:

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

and JS:

function ajax(caller_element, url)
{
 alert(caller_element.innerHTML);
 ...xmlhttp(url)...
}
っ〆星空下的拥抱 2024-12-07 19:43:36

如果不修改 HTML,这是不可能的。如果您的情况允许,您可以使用 id 标签...

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

function ajax(url) {
    alert(document.body.getElementById("whatever").innerHTML);
    ...xmlhttp(url)...
}

This is impossible without modifying the HTML. If your situation permits, you could use the id tag...

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

function ajax(url) {
    alert(document.body.getElementById("whatever").innerHTML);
    ...xmlhttp(url)...
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文