我正在使用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,并且它传递数字。

09-07 13:08