[英]How to get the element that fired the “onclick” event without passing event argument?
在這種情況下,如何獲取觸發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()
函數。
試試這個HTML代碼:
<div onclick="ajax(this, '?section=panel');">Hi</div>
和JS:
function ajax(caller_element, url)
{
alert(caller_element.innerHTML);
...xmlhttp(url)...
}
您可以使用Function.prototype.call
來設置Function.prototype.call
的上下文,如下所示:
<div onclick="ajax.call(this, '?section=panel');">Hi</div>
function ajax(url) {
alert(this.innerHTML);
...xmlhttp(url)...
}
盡管如此,傳遞它作為一個論點也同樣容易。
如果不修改HTML,這是不可能的。 如果您的情況允許,您可以使用id
標簽...
<div id="whatever" onclick="ajax('?section-panel');">Hi</div>
function ajax(url) {
alert(document.body.getElementById("whatever").innerHTML);
...xmlhttp(url)...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.