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

Passing string parameter in JavaScript function

我试图将字符串传递给 JavaScript 函数。

正如这里提到的 - Pass a 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 }.

的错误

将您的变量 name 重命名为 myname,因为 namewindow 的通用 属性 并且在同一个 [=31] 中不可写=].

并替换

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);
}

将代码更改为

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

使用这个:

document.write('<td width="74"><button id="button" type="button" onclick="myfunction('" + name + "')">click</button></td>')

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

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

<button id="button" data-name="Mathew" type="button">click</button>

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

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

button.onclick = myfunction;

function myfunction() {
  var name = this.getAttribute('data-name');
  alert(name);
}

DEMO

您可以将字符串参数传递给 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);
}
document.write(`<td width='74'><button id='button' type='button' onclick='myfunction(\``+ name + `\`)'>click</button></td>`)

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

试试这个...

onclick="myfunction('name')";