Ich habe einen Link in einem div:

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

Jetzt möchte ich das Facebook-Kommentarsystem anhängen:

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

Wie Sie sehen können, habe ich "dies" für die href, es funktioniert nicht für mich. Ich möchte die URL des Links haben, an den ich das Kommentarsystem anhänge. Wie finde und implementiere ich diese URL? Beispiel: JsFiddle

-1
Youss 6 Okt. 2012 im 16:01

6 Antworten

Beste Antwort

Wenn Sie mehr als ein '.embed a' haben, müssen Sie jedes davon bearbeiten und die richtige href angeben:

$('.embed a').each(function(){
    $(this).append('<div class="fb-comments" data-href="' + $(this).attr('href') + '" data-num-posts="1" data-width="470"></div>');
});​
1
Denys Séguret 6 Okt. 2012 im 12:27

Anstelle von this verwenden Sie einfach $('.embed a').attr('href')

Sie können hier sehen: JS Fiddle

0
Vishal Suthar 6 Okt. 2012 im 12:04

Sie können die href erhalten, indem Sie so etwas tun

var href=$('.embed a').attr('href');
1
Priyank Patel 6 Okt. 2012 im 12:04

Sie können die Methode html verwenden. Im Kontext der Funktion html bezieht sich this auf Ihre Ankerverknüpfung (en).

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

Wenn Sie das HTML-Markup anhängen / voranstellen möchten und Ihr Element HTML-Inhalt hat, können Sie den HTML-Inhalt verketten:

$('.embed a').html(function(i, current){
    return current + '<div class="fb-comments" data-href="' + this.href + '" data-num-posts="1" data-width="470"></div>'
});
0
undefined 6 Okt. 2012 im 12:05

this is not available in this context du musst das Element selbst verwenden $('.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>');​
2
Adil 6 Okt. 2012 im 12:03

Versuchen Sie es wie folgt:

$('.embed').find('a').attr('href');
1
harsh4u 6 Okt. 2012 im 12:22