这是我的问题:
我正在动态创建一个带有 onclick 函数的按钮,如下所示:
$("#test).html('<input type="button" value="Close" onclick="remove('+param1+','+param2+');" />');
参数读取良好,但函数未触发,并且我收到此错误消息: 当 bob 是 param1 的字符串值时,“bob 未定义”。
显然,当 bob 应该作为字符串读取时,它似乎被读取为变量,但我不明白为什么。
非常感谢您的帮助!
最佳答案
那是因为这个字符串就在这里:
'onclick="remove('+param1+','+param2+');"'
最终看起来像这样:
'onclick="remove(foo, bar);"'
您可能希望它看起来像这样:
'onclick="remove(\'foo\', \'bar\');"'
所以将其更改为:
'onclick="remove(\''+param1+'\', \''+param2+'\');"'
您也可以这样做:
$("#test").html('<input type="button" value="Close" />').find('input[type=button]').click(function () {
remove(param1, param2);
});
编辑:我还注意到您在 $() 调用中缺少一个 ": $("#test)
应该是 $("#test")
.
关于javascript - 使用 onclick 函数传递参数时,应将其读取为字符串,但将其读取为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940182/