如何使用来自json对象的链接替换facebook的按钮的href属性

时间:2011-02-20 13:37:36

标签: jquery ajax json facebook

在我的页面上,我有一个主div,它是由一个链接插件生成的。我通过ajax调用简单的json对象得到这个链接。我需要将此链接替换为我的XFBML FB Like按钮的href属性。

在这里,我尝试过:

//application.js
 $.getJSON('/full/path/show.json?' function(data) {
                $('#maindiv').somePlugin(data.data_link);
               //some actions
    $('#facebook').attr('href', data.data_link);
            });

//index.html
<div id ='facebook'>
<fb:like href="" layout="button_count" show_faces="false" width="450" colorscheme="dark"></fb:like>
            </div>

但它没有升级href属性,只是默认离开我的页面链接。我究竟做错了什么?

3 个答案:

答案 0 :(得分:3)

我不知道我是不是错了,但为什么div中的标签'fb:like'?它不应该是一个链接(标签)吗?

无论如何只需为fb设置href:like或a和NOT为Div。 Divs ussualy没有href属性。 :d

应该是这样的:

$('#facebook fb:like').attr('href', data.data_link);

正如Shaun Hare所说:你必须逃离结肠。刚试过它。作品。看起来像这样:

$('#facebook fb\\:like').attr('href', data.data_link);

如果数据链接是一个合适的JSON对象,它应该以这种方式工作。要更新链接,代码如下所示:

data = {data_link: 'http://example.com'};
$('#facebook fb\\:like').attr('href', data.data_link);

当然你可以通过AJAX获得JSON。如果它不起作用,请准确描述问题。

(PS:不要使用评论来提出新问题。)

答案 1 :(得分:2)

因为您试图从href获取div而没有fb:link。 您是否尝试过将id元素设为alert($('#facebook fb\\\\:like').attr('href')); 并将其作为目标?

更新:显然你需要转义命名空间 - 这可行

{{1}}

答案 2 :(得分:0)

//application.js
 $.getJSON('/full/path/show.json?' function(data) {
                $('#maindiv').somePlugin(data.data_link);
               //some actions
    $('#facebook').attr('href', data.data_link);
            });

//index.html
<div id ='facebook'>
<fb:like href="" layout="button_count" show_faces="false" width="450" colorscheme="dark"></fb:like>
</div>