我想传递一个参数(即字符串)到Onclick函数。

目前,我是这样做的:

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

例如,result.name = string "Add"。

当我点击这个按钮时,我有一个错误,说“Add is not defined”。由于这个函数调用可以很好地处理数值形参,所以我假设它与字符串中的符号“”有关。

我该如何解决这个问题?


当前回答

如果你的按钮是动态生成的:

你可以将字符串参数传递给JavaScript函数,如下所示:

我传递了三个参数,第三个是字符串参数。

var btn ="<input type='button' onclick='RoomIsReadyFunc("+ID+","+RefId+",\""+YourString+"\");'  value='Room is Ready' />";

// Your JavaScript function

function RoomIsReadyFunc(ID, RefId, YourString)
{
  alert(ID);
  alert(RefId);
  alert(YourString);
}

其他回答

这是我的工作:

$(element).attr("onClick", 'functionName(' + "\"" + Object.attribute + "\"" + ')');

只需在()中添加\斜杠

※多参数示例

"functionName(" + "'" + parameter1 + "','" + parameter2 + "','" + parameter3 + "','" + parameter4 + "','" + parameter5 + "','" + parameter6 + "')"

你也可以在字符串中使用重音符号(')

Try:

`<input type="button" onClick="gotoNode('${result.name}')" />`

欲了解更多信息,请访问MDN和Stack Overflow。

由Chrome, Edge, Firefox (Gecko), Opera, Safari支持,但不支持Internet Explorer。

你可以用这个:

'<input id="test" type="button" value="' + result.name + '" />'

$(document).on('click', "#test", function () {
    alert($(this).val());
});

这对我很管用。

我猜,您正在使用JavaScript本身创建一个按钮。代码中的错误在于,它会以这种形式呈现

<input type="button" onClick="gotoNode(add)" />'

在当前状态下,add将被视为与变量或函数调用类似的标识符。你应该这样转义这个值

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

如果您正在动态添加按钮或链接,并面临这个问题,那么这可能会有所帮助。我是这样解决的:

var link= $(contentData1[i]).find("td:first font b a").attr("href",'javascript:onClick=openWin(\'' + tdText + '\')');

我是新的HTML, jQuery和JavaScript。也许我的代码没有优化,语法也没有优化,但它对我有用。