在这种情况下,如何获取触发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()
功能。
答案 0 :(得分:2)
试试这个HTML代码:
<div onclick="ajax(this, '?section=panel');">Hi</div>
和JS:
function ajax(caller_element, url)
{
alert(caller_element.innerHTML);
...xmlhttp(url)...
}
答案 1 :(得分:2)
您可以使用Function.prototype.call
设置函数的上下文,如下所示:
<div onclick="ajax.call(this, '?section=panel');">Hi</div>
function ajax(url) {
alert(this.innerHTML);
...xmlhttp(url)...
}
尽管如此,传递它作为一个论点也同样容易。
答案 2 :(得分:0)
如果不修改HTML,这是不可能的。如果您的情况允许,您可以使用id
代码...
<div id="whatever" onclick="ajax('?section-panel');">Hi</div>
function ajax(url) {
alert(document.body.getElementById("whatever").innerHTML);
...xmlhttp(url)...
}