javascript 意外标记 }

javascript unexpected token }

我有这段代码,我在网页上创建两个 link 元素并向它们添加点击事件:

function createNewChat(){
     //alert("new chat fired");
     var roomName = document.getElementById("roomName").value
     if (roomName){
        resetErrorLog();           
        $('#createRoom').append('<p>would you like to password protect this room?</p>');
        $('#createRoom').append('<div><a href="#" onclick="newChatHelper("yes")"> yes </a></div>');
        $('#createRoom').append('<div><a href="#" onclick="newChatHelper("no")"> no </a></div>');
     }
     else {
     document.getElementById("errorlog").innerHTML = "<p>The room name input box seems to be empty</p>";
     }
  }

DOM 更新正确,但是当我单击 link 时,我在第 2 行收到一个意外标记},这是一个标记。此代码块位于文件的后面。辅助方法根本没有被触发,所以我很确定问题出在这段代码上。非常感谢您的帮助。

var roomName = document.getElementById("roomName").value

您可能想用 ;

结束它
var roomName = document.getElementById("roomName").value;
 var roomName = document.getElementById("roomName").value

来自 var roomName = document.getElementById("roomName").value;

onclick="newChatHelper("yes")" 是 HTML

中的引用问题

您需要使用 onclick="newChatHelper('yes')" — 注意函数调用中的 单引号

但是因为你已经在单引号中有了它,你需要转义内部单引号,像这样:

'<div><a href="#" onclick="newChatHelper(\'yes\')"> no </a></div>'

您也可以考虑完全不使用 onclick 属性

$('#createRoom').append(
  $('<a href="#">yes</a>').click(function(event) {
    newChatHelper("yes");
    event.preventDefault();
  }).wrap('<div/>').parent()
);

$('#createRoom').append(
  $('<div></div>').append(
    $('<a href="#">yes</a>').click(function(event) {
      newChatHelper("yes");
      event.preventDefault();
    })
  )
);