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

Anu*_*rty 7 html javascript events onclick button

我试图将字符串传递给javascript函数.

正如这里提到的 - 在onclick函数中传递字符串参数

我正在使用这个简单的代码 -

<!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>
Run Code Online (Sandbox Code Playgroud)

但是在控制台中它会给出错误Uncaught SyntaxError: Unexpected token }.

Jun*_*nja 9

将您的代码更改为

document.write("<td width='74'><button id='button' type='button' onclick='myfunction(\""+ name + "\")'>click</button></td>")
Run Code Online (Sandbox Code Playgroud)


Nin*_*olz 7

将变量重命名namemyname,bacause name是一个通用属性,window并且在同一窗口中不可写.

并替换

onclick='myfunction(\''" + name + "'\')'
Run Code Online (Sandbox Code Playgroud)

onclick='myfunction(myname)'
Run Code Online (Sandbox Code Playgroud)

工作范例:

var myname = "Mathew";
document.write('<button id="button" type="button" onclick="myfunction(myname);">click</button>');
function myfunction(name) {
    alert(name);
}
Run Code Online (Sandbox Code Playgroud)


ban*_*der 6

document.write(`<td width='74'><button id='button' type='button' onclick='myfunction(\``+ name + `\`)'>click</button></td>`)
Run Code Online (Sandbox Code Playgroud)

使用``比使用“”更好。这是一个更加动态的答案。


And*_*ndy 5

问题已得到解答,但为了您将来的编码参考,您可能需要考虑这一点。

在您的 HTML 中,将名称作为属性添加到按钮并删除 onclick 引用。

<button id="button" data-name="Mathew" type="button">click</button>
Run Code Online (Sandbox Code Playgroud)

在您的 JavaScript 中,使用按钮的 ID 获取按钮,将函数分配给按钮的click事件,并使用该函数显示按钮的 data-name 属性。

var button = document.getElementById('button');

button.onclick = myfunction;

function myfunction() {
  var name = this.getAttribute('data-name');
  alert(name);
}
Run Code Online (Sandbox Code Playgroud)

演示