内联javascript触发器不起作用

时间:2015-09-18 08:12:28

标签: javascript jquery

html = '<a href="#" onclick="alert("This link is clickable only in the mobile!")">text</a>'

我附加了我的html,但是当我点击它时说出了意外的令牌},是不可能像这样做内联触发器?

3 个答案:

答案 0 :(得分:4)

您需要转义属性值中的"个字符...使用&quot; special entity

html = '<a href="#" onclick="alert(&quot;This link is clickable only in the mobile!&quot;)">text</a>'

有更好的选择来实现这一目标,而不是用JavaScript编写原始HTML。

jQuery

var aElement = jQuery("<a>").attr("href", "#").click(function() {
    alert("This link is clickable only in the mobile!");
});
// You can append it like:
aElement.appendTo(document.body);

Pure Javascript:

var aElement = document.createElement("a");
aElement.setAttribute("href", "#");
// If you want the onclick attribute to show up in HTML source:
aElement.setAttribute("onclick", "alert(\"This link is clickable only in the mobile!\")");
// This way is easier:
aElement.onclick = function() {
    alert("This link is clickable only in the mobile!");
}
// Append like:
document.body.appendChild(aElement);

答案 1 :(得分:3)

因为你正在混合使用双引号,所以不可能完全相同。

在字符串中使用转义单引号:

html='<a href="#" onclick="alert(\'This link is clickable only in the mobile!\')">text</a>'

答案 2 :(得分:1)

html = '<a href="javascript:alert(&quot;This link is clickable only in the mobile!&quot;)">text</a>'

您可以直接在锚点href中附加javascript方法,也需要编码(转义)引号。