我试图将字符串传递给javascript函数。
正如这里提到的那样 - pass string parameter in an onclick function
我使用这个简单的代码 -
<!DOCTYPE html>
<html>
<body>
<script>
name = "Mathew";
document.write("<button id='button' type='button' onclick='myfunction(\''" + name + "'\')'>click</button>")
function myfunction(name)
{
alert(name);
}
</script>
</body>
</html>
但是在控制台中它会给出Uncaught SyntaxError: Unexpected token }
之类的错误。
答案 0 :(得分:8)
将您的代码更改为
document.write("<td width='74'><button id='button' type='button' onclick='myfunction(\""+ name + "\")'>click</button></td>")
答案 1 :(得分:7)
将变量name
重命名为myname
,因为name
是window
的通用属性,并且在同一窗口中无法写入。
并替换
onclick='myfunction(\''" + name + "'\')'
使用
onclick='myfunction(myname)'
工作示例:
var myname = "Mathew";
document.write('<button id="button" type="button" onclick="myfunction(myname);">click</button>');
function myfunction(name) {
alert(name);
}
&#13;
答案 2 :(得分:1)
问题已经得到解答,但是对于您将来的编码参考,您可能会考虑这个问题。
在HTML中,将名称作为属性添加到按钮,然后删除onclick引用。
<button id="button" data-name="Mathew" type="button">click</button>
在您的JS中,使用其ID获取按钮,将该功能分配给按钮的click
事件,并使用该功能显示按钮的数据名称属性。
var button = document.getElementById('button');
button.onclick = myfunction;
function myfunction() {
var name = this.getAttribute('data-name');
alert(name);
}
祝你好运。
答案 3 :(得分:0)
//use this
document.write('<td width="74"><button id="button" type="button" onclick="myfunction('" + name + "')">click</button></td>')
答案 4 :(得分:0)
您可以将字符串参数传递给javascript函数,例如以下代码:
我传递了3个参数,其中第三个是字符串参数,希望对您有所帮助。
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);
}
答案 5 :(得分:0)
document.write(`<td width='74'><button id='button' type='button' onclick='myfunction(\``+ name + `\`)'>click</button></td>`)
最好使用``而不是“,这是更动态的答案。