2011-08-20 53 views

回答

2

您可以使用Function.prototype.call設置功能的情況下,像這樣:

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

它會盡管如此,將它作爲參數一樣容易。

+0

問題是我不能改變HTML我只能改變'ajax(...)'函數。在我的情況下可能嗎? –

+0

我認爲唯一不需要改變我的代碼的方法是使用prototype.call,我必須調用我們的HTMLer來更改他的代碼:)。謝謝您的回答。 –

2

試試這個HTML代碼:

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

和JS:

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

問題是我無法改變的HTML我只能改變'阿賈克斯(...)'函數。在我的情況下可能嗎? –

0

如果不修改HTML,這是不可能的。如果情況允許,您可以使用id標籤...

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

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

他不能只使用Function.prototype.call來設置函數的上下文,就像在漫遊器中一樣? – Bytemain

+0

@Jitamaro是的,如果他可以修改HTML,否則不行。無論哪種方式,我只是提供另一種選擇。 :) – fireshadow52

相關問題