使用Javascript锚标记,在Javascript中

时间:2010-11-01 12:08:22

标签: javascript

我有输出链接的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>`

有可能吗?我还有其他选择吗?

2 个答案:

答案 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(&#39;http://www.akademika.no/node/"+item.link+"&#39;)'>" + item.title + "</a>"; 

我已经在你的字符串中用&#39;替换了两个撇号。

此外,你不是指$('#bokvisning_content').load ...,它会给我们:

var str = "<a href='#bokvisning' onclick='javascript:$(&#39;#bokvisning_content&#39;).load(&#39;http://www.akademika.no/node/"+item.link+"&#39;)'>" + item.title + "</a>"; 

总而言之,使用@Nick Craver的解决方案来解开多层引用可能是最好的。

相关问题