我正在尝试在javascript中创建一个可点击的链接
var content = '<a href=\"#\" onclick=\"displayContent(\"TEST\")\">Whatever</a>';
$("#placeHolder").html(content);
但我一直收到错误
未捕获的SyntaxError:意外的令牌}
这不是逃避双引号和创建链接的正确方法吗?
答案 0 :(得分:7)
您只需要转义单引号
var content = '<a href="#" onclick="displayContent(\'TEST\')">Whatever</a>'
正如博兹多兹所说:
您转义单引号内的单引号;你转义双引号内的双引号
但为什么不这样做
var content = $("<a />").attr("href", "#").text("Whatever").click(function(){
displayContent('TEST')
});
或正如内森所说:
var content = $('<a href="#">Whatever</a>').click(
function() { displayContent('TEST')
});
答案 1 :(得分:2)
你可以通过创建这样的元素来避免这种混乱:
var content = $( "<a>", {
href: "#",
text: "whatever",
click: $.proxy( displayContent, 0, "TEST" )
});
答案 2 :(得分:1)
您只需要在引号和结束引号使用的类型相同时转义引号。在您的示例中,您不必要地转义双引号,因为您的字符串用单引号括起来。话虽如此,由于onclick
语句中的双引号,解析器在调用displayContent()
时会出现问题。
试试这个,而不是:
var content = '<a href="#" onclick="displayContent(\'TEST\')">Whatever</a>';
答案 3 :(得分:0)
你根本不需要逃避它们!
var content = '<a href="#" onclick="displayContent(\'TEST\')">Whatever</a>';
$("#placeHolder").html(content);
就这样,因为当你嵌入"
时,你通常不需要逃避'
;
但是当它是函数中的参数时,你需要转义'
个字符。