-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>');​

ご覧のとおり、href に「this」がありますが、うまくいきません。コメント システムを追加するリンクの URL を取得したいと思います。この URL を見つけて実装するにはどうすればよいですか? 例: 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

以下のようにしてみてください:

$('.embed').find('a').attr('href');
于 2012-10-06T12:22:31.733 に答える
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 に答える
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 に答える