Javascript语法错误:意外标记';}';

Javascript语法错误:意外标记';}';,javascript,onclick,Javascript,Onclick,我有以下简单的代码,但是由于某种原因,它抛出了一个意外的标记“}”错误,我不完全确定为什么。 我有以下代码来生成按钮 var OverlayMessage = ("Do you want to test these settings? <br> <h6>" + protocol + ":" + systemcodeSend + "-" + unitcode + " sending " + state + '</h6> <br> <a id="

我有以下简单的代码,但是由于某种原因,它抛出了一个意外的标记“}”错误,我不完全确定为什么。 我有以下代码来生成按钮

var OverlayMessage = ("Do you want to test these settings? <br> <h6>" + protocol + ":" + systemcodeSend + "-" + unitcode + " sending " + state + '</h6> <br> <a id="btnGreen" onclick="checkIfSettingsWork("' + protocol +'", "'+ systemcodeSend +'", "'+ unitcode +'", "'+ state +'");">Yes</a> <a id="btnRed" onclick="toggleVisibility(\'overlayAddDevice\')">No</a>');
        console.log(OverlayMessage);
        overlayMessage(OverlayMessage);
这是checkIfSettingsWork函数

function checkIfSettingsWork(protocol, systemcodeSend, unitcode, state) {
    console.log(protocol + systemcodeSend + unitcode + state)

}
这是无效的html:

 <a id="btnGreen" onclick="checkIfSettingsWork("pollin", "31", "14", "on");">Yes</a>

有效的synatax将是

<a id="btnGreen" onclick="checkIfSettingsWork('pollin', '31', '14', 'on')">Yes</a>

您犯了一个低级错误

这是无效的,如
onclick=“checkIfSettingsWork(“pollin”、“31”、“14”、“on”);”

你需要修正“到”


另一件事是,我认为当您声明
overlyMessage
时,只是我的建议,可能您需要统一使用
字符

这里有很多上下文,我认为它们需要分开。您正试图在这个声明中创建文本、HTML和JavaScript。同样在你混合单引号和双引号。在您的连接中。你可以两者都用,但它们必须匹配

把所有这些都放在一条线上是不安全的。尤其是onClick函数。我不想直接为JavaScript函数创建HTML模板,然后将变量输入函数

函数中的参数也不需要任何引号,只需输入变量即可


CheckIfSettingsWork(协议、系统代码发送、单位代码、状态)

尝试用单引号替换参数中的双引号。mh OP是否真的需要TL;博士只回答了6行文字?
 <a id="btnGreen" onclick="checkIfSettingsWork("pollin", "31", "14", "on");">Yes</a>
<a id="btnGreen" onclick="checkIfSettingsWork('pollin', '31', '14', 'on')">Yes</a>
<a id="btnGreen" onclick="checkIfSettingsWork('pollin', '31', '14', 'on')">Yes</a>