你傳遞一個字符串,而不是一個變量,使用:
onclick="myFunction(data)"
的字符串必須用引號,變量(一個參考,在這種情況下,爲字符串)不能(否則」將被評估爲文字字符串)。
順便說一句,JavaScript不要求你給它分配一個值之前,創建一個字符串,你可以只使用:
var data = 'This is what I want to show.';
,同時使用innerHTML
的作品,如果你正在做的是更新文本內容(也有被認爲是沒有嵌套的節點),你可以簡單地使用:
function myFunction(text) {
// the var declaration prevents the variable becoming global
var elem = document.getElementById('replace');
elem.appendChild(document.createTextNode(text));
}
,並使其更普遍,實用,避免硬編碼的元素的id
在函數內改變,而不是傳遞給它功能:
function myFunction(text, elem) {
// testing if the element is a node, if not assume it's a string of the id:
var elem = elem.nodeType === 1 ? elem : document.getElementById('replace');
elem.appendChild(document.createTextNode(text));
}
和耦合的上面:
onclick="myFunction(data, 'replace')"
或者:不使用在線/生硬的JavaScript
onclick="myFunction(data, document.getElementById('replace'))"
我也強烈,建議,簡單地以便更容易地在一個地方更新要調用的函數,參數和函數本身(而不必遍歷文檔並找到調用該函數的每個實例):
// define the function here
var buttons = document.getElementsByTagName('button'),
replace = document.getElementById('replace'),
data = 'Text I want to show.';
for (var i = 0, len = buttons.length; i < len; i++){
buttons[i].onclick = function(){
myFunction(data, replace);
};
}
您是否想要將'Test'替換爲'button'值'Press'或者其他不同的值。請詳細說明。 – 2013-05-07 06:57:01
對不起,按下按鈕時,'測試'應替換爲'這是我想顯示' – user2330961 2013-05-07 06:58:25
替換<按鈕onclick = 「myFunction(data)」>按 – Agriesean 2013-05-07 07:00:42