使用onclick函数传递参数作为变量读取时应将其作为字符串读取

0 javascript parameters dynamic onclick

这是我的问题:

我正在动态创建一个带有onclick函数的按钮,如下所示:

 $("#test).html('<input type="button" value="Close" onclick="remove('+param1+','+param2+');" />');
Run Code Online (Sandbox Code Playgroud)

参数很好读,但函数不是触发器,我有这个错误信息:当bob是param1的字符串值时,"bob未定义".

显然,当它应该被读作字符串时,bob被读作变量,但我不明白为什么.

非常感谢您的帮助!

pow*_*uoy 5

那是因为这个字符串就在这里:

'onclick="remove('+param1+','+param2+');"'
Run Code Online (Sandbox Code Playgroud)

最终看起来像这样:

'onclick="remove(foo, bar);"'
Run Code Online (Sandbox Code Playgroud)

您可能希望它看起来像这样:

'onclick="remove(\'foo\', \'bar\');"'
Run Code Online (Sandbox Code Playgroud)

所以改成它:

'onclick="remove(\''+param1+'\', \''+param2+'\');"'
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

$("#test").html('<input type="button" value="Close" />').find('input[type=button]').click(function () {
    remove(param1, param2);
});
Run Code Online (Sandbox Code Playgroud)

编辑:我也注意到你错过了一个"来自你的$() - 电话:$("#test)应该是$("#test").