你传递一个字符串,而不是一个变量,使用:
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