-1

我在 div 中有一个链接:

<div class="embed">
<a href="http://google.com/"></a>
</div>​

所以现在我想附加 Facebook 评论系统:

$('.embed a').append('<div class="fb-comments" data-href="' + this + '" data-num-posts="1" data-width="470"></div>');​

正如你所看到的,我有'this'作为href,它对我不起作用。我想要链接的网址,我在上面附加评论系统。如何找到并实施此网址?示例:JsFiddle

4

6 回答 6

2

this is not available in this context你必须自己使用那个元素$('.embed a').attr('href')

$('.embed a').append('<div class="fb-comments" data-href="' + $('.embed a').attr('href') + '" data-num-posts="1" data-width="470"></div>');​
于 2012-10-06T12:03:59.077 回答
1

你可以通过做这样的事情来获得href

var href=$('.embed a').attr('href');
于 2012-10-06T12:04:26.597 回答
1

如果您有多个'.embed a',则需要对它们中的每一个进行操作并给出正确的 href :

$('.embed a').each(function(){
    $(this).append('<div class="fb-comments" data-href="' + $(this).attr('href') + '" data-num-posts="1" data-width="470"></div>');
});​
于 2012-10-06T12:05:46.847 回答
1

尝试如下:

$('.embed').find('a').attr('href');
于 2012-10-06T12:22:31.733 回答
0

this不仅仅是使用$('.embed a').attr('href')

你可以在这里看到:JS Fiddle

于 2012-10-06T12:04:44.870 回答
0

您可以在函数html上下文中使用方法来引用您的锚链接。htmlthis

$('.embed a').html(function(i, c){
    return '<div class="fb-comments" data-href="' + this.href + '" data-num-posts="1" data-width="470"></div>'
});

如果要附加/前置 html 标记并且您的元素具有 html 内容,则可以连接 html 内容:

$('.embed a').html(function(i, current){
    return current + '<div class="fb-comments" data-href="' + this.href + '" data-num-posts="1" data-width="470"></div>'
});
于 2012-10-06T12:05:18.810 回答