一尘不染

在onclick函数中传递字符串参数

javascript

我想将参数(即字符串)传递给Onclick函数。目前,我这样做:

'<input type="button" onClick="gotoNode(' + result.name + ')" />'

例如,result.name等于字符串“
Add”。当我单击此按钮时,出现一个错误,提示未定义添加。由于此函数调用可以完美地与数字参数一起使用,因此我认为它与字符串中的符号“”有关。以前有人遇到过这个问题吗?


阅读 875

收藏
2020-05-01

共1个答案

一尘不染

看起来您是从字符串构建DOM元素。您只需要在result.name周围添加一些引号即可:

'<input type="button" onClick="gotoNode(\'' + result.name + '\')" />'

您实际上应该使用适当的DOM方法来执行此操作。

var inputElement = document.createElement('input');
inputElement.type = "button"
inputElement.addEventListener('click', function(){
    gotoNode(result.name);
});

​document.body.appendChild(inputElement);​

请注意,如果这是一个循环之类的东西,result它将在事件触发前发生变化,您需要创建一个额外的作用域气泡以遮盖变化的变量。

2020-05-01