我有输出链接的JavaScript(搜索结果),但我在锚标记中添加onclick时遇到问题
var str = "<a href='#bokvisning' onclick='javascript:$(#bokvisning_content).load('http://www.akademika.no/node/"+item.link+"')'>" + item.title + "</a>";
输出这个,这是错误的:
<a href="#bokvisning" onclick="javascript:$(#bokvisning_content).load(" http:="" www.akademika.no="" node="" link')'="">Title</a>`
有可能吗?我还有其他选择吗?
答案 0 :(得分:3)
快速修复是引号,如下:
var str = "<a href='#bokvisning' onclick='javascript:$(\'#bokvisning_content\').load(\'http://www.akademika.no/node/"+item.link+"\')'>" + item.title + "</a>";
最好不要引人注意地添加点击处理程序,如下所示:
var anchor = $("<a/>", {href:'#bokvisning', text:item.title}).click(function() {
$("#bokvisning_content").load("http://www.akademika.no/node/"+item.link);
});
//or for older jQuery versions (<1.4):
var anchor = $("<a href='#bokvisning'></a>").text(item.title).click(function() {
$("#bokvisning_content").load("http://www.akademika.no/node/"+item.link);
});
然后将 附加到您当前放入字符串的任何元素中。
注意:上面的第二个选项假设jQuery是一个选项,因为onclick
正在使用它。
答案 1 :(得分:0)
你必须正确地逃避引号:
var str = "<a href='#bokvisning' onclick='javascript:$(#bokvisning_content).load('http://www.akademika.no/node/"+item.link+"')'>" + item.title + "</a>";
我已经在你的字符串中用'
替换了两个撇号。
此外,你不是指$('#bokvisning_content').load ...
,它会给我们:
var str = "<a href='#bokvisning' onclick='javascript:$('#bokvisning_content').load('http://www.akademika.no/node/"+item.link+"')'>" + item.title + "</a>";
总而言之,使用@Nick Craver的解决方案来解开多层引用可能是最好的。