我正在使用javascript,并尝试将字符串传递给函数,就像这样
//example string
var f="a";
//add button that sends the value of f to the function
document.getElementById("mydiv").innerHTML="<input type='button' id='myButton' value='Click here' onclick='gothere("+f+");'> ";
function gothere(a){
alert(a);
}
我从没看到警报,在控制台中看到了
a is not defined
(指的是我猜到的f?)如果我将f
var
设置为数字,那么我会看到警报。我想念什么?
提前致谢
编辑
我在想也许
var buttonnode= document.createElement('input');
document.getElementById("mydiv").appendChild(buttonnode);
buttonnode.onclick=gothere(f);
出于相同原因无法工作?
最佳答案
呈现HTML时,您会得到onclick='gothere(a);'
,但是实际的a
变量在此上下文中不存在,您希望将f的值作为字符串传递,因此您需要使用onclick='gothere(\""+f+"\");'
。注意括号内的多余引号。这将呈现为onclick='gothere("a");'
,从而传递字符串。
使用数字时,它可以工作,因为调用onclick='gothere(5);'
是有效的,因为不能将变量命名为5
,并且它传递数字。