2015-04-07 86 views
1

我的地方我創建一個網頁上的兩個鏈接元素添加一個click事件給他們這段代碼:JavaScript的意外標記}

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正常更新,但是當我點擊鏈接我得到一個意外的令牌}在第2行,這是一個標籤。這段代碼在文件中要晚得多。輔助方法並沒有被解僱,所以我很確定問題出在這個代碼上。非常感謝幫助。

+0

檢查鏈接,看看什麼HTML'的onclick = 「newChatHelper(」 無 「)」'變成(提示:看看引號)。 –

回答

5

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

OR

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

是的。我認爲這比這更深。單引號將打破外引號 – slebetman

+0

介意單引號也在使用;) – skip405

+0

您可能想要演示如何將單引號嵌入到字符串文字中。 –

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

您可能想要關閉它;

var roomName = document.getElementById("roomName").value; 
+2

這不是錯誤的原因。在大多數情況下,分號是可選的。 –

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

通過 VAR ROOMNAME =的document.getElementById( 「ROOMNAME」)值。

+0

這不是錯誤的原因。在大多數情況下,分號是可選的。 –

+0

這甚至不是一個語法錯誤。這只是不好的做法。但它是有效的javascript – slebetman