javascript意外标记}
我有一段代码,我在网页上创建了两个链接元素,并向其中添加了一个单击事件:javascript意外标记},javascript,jquery,html,dom,web,Javascript,Jquery,Html,Dom,Web,我有一段代码,我在网页上创建了两个链接元素,并向其中添加了一个单击事件: function createNewChat(){ //alert("new chat fired"); var roomName = document.getElementById("roomName").value if (roomName){ resetErrorLog(); $('#createRoom').append('<
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>";
}
}
函数createNewChat(){
//警报(“新聊天已启动”);
var roomName=document.getElementById(“roomName”).value
如果(房间名){
resetErrorLog();
$(“#createRoom”).append(“您想用密码保护这个文件室吗?”);
$('#createRoom')。附加('');
$('#createRoom')。附加('');
}
否则{
document.getElementById(“errorlog”).innerHTML=“房间名称输入框似乎是空的””;
}
}
DOM会正确更新,但是当我单击链接时,我在第2行得到一个意外的标记},它是一个标记。这段代码在文件中要晚得多。helper方法根本没有被解雇,所以我很确定问题出在这段代码上。非常感谢你的帮助
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>'
或
$('#createRoom').append(
$('<div></div>').append(
$('<a href="#">yes</a>').click(function(event) {
newChatHelper("yes");
event.preventDefault();
})
)
);
$('#createRoom')。追加(
$('')。追加(
$('')。单击(函数(事件){
newChatHelper(“是”);
event.preventDefault();
})
)
);
检查链接并查看HTMLonclick=“newChatHelper(“no”)”
变成什么(提示:查看引号)。这不是错误的原因。分号在大多数情况下是可选的。这不是错误的原因。分号在大多数情况下是可选的,这甚至不是语法错误。这只是坏习惯。但这是有效的。我认为它比这更深。单引号将打断外部引号。您可能希望演示如何将单引号嵌入字符串文字。我建议将\“
作为一个快速修复方法,但这会冒犯我的敏感性:)@slebetman:这无论如何都不会有帮助,因为\
在HTML中不是转义字符。例如onclick=“newChatHelper(\“yes\”)“
仍然会产生错误的结果。@FelixKling,我还提供了一个解决方案,可以完全避免转义:)
$('#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();
})
)
);