簡體   English   中英

如何在不傳遞事件參數的情況下獲取觸發“onclick”事件的元素?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM