javascript意外令牌}

use*_*700 1 html javascript jquery dom web

我有这个代码块,我在网页上创建了两个链接元素并向它们添加了一个click事件:

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>";
     }
  }
Run Code Online (Sandbox Code Playgroud)

DOM正确更新,但当我点击第2行的链接时,我得到一个意外的令牌},这是一个标签.这段代码在文件后面.帮助方法根本没有被解雇,所以我很确定问题出在这个代码上.非常感谢帮助.

Tha*_*you 5

onclick="newChatHelper("yes")" 是HTML中的引用问题

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

但是因为你已经在单引号中有这个,你需要转义内部单引号,如下所示:

'<div><a href="#" onclick="newChatHelper(\'yes\')"> no </a></div>'
Run Code Online (Sandbox Code Playgroud)

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

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

要么

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