2016-10-07 3 views
0

ich die href attritube von Link zu diesem Teil des CodesÄndern href Attribut generierte Zeichenfolge aus API mit jquery

<a href="https://en.wikipedia.org/wiki/" class="author" target="_BLANK"></a> 

Ich verwende diesen Code ändern möchten das href Attribut zu ändern

$('a').attr('href', function() { 
return this.href + update.response; 
}); 

ich habe versucht, eine Variable in dieser Funktion scheinen

function update(response) { 

    $('#response').html(JSON.stringify(response.quoteText)); 
var okay = $('.author').html(JSON.stringify(response.quoteAuthor)); 

} 

Aber ich kann nicht machen greifen Sie von außerhalb des Umfangs darauf zu.

Grundsätzlich möchte ich auf Wikipedia-Autor-Seite verlinken, indem Sie den $('.author') Namen am Ende des Links hinzufügen. Hinzugefügt wurde die update.response bis zum Ende der Verbindung, aber ich bekomme undefined

CodePen Link

+0

Nur eine kleine Anmerkung: die Schaffung eines codePen war sehr nützlich. Aber noch besser ist es Stack Overflows Snippets zu verwenden. Es ist genauso einfach wie CodePen, wenn nicht einfacher .. :) – Keith

Antwort

0

einfach den href an dem Punkt, aktualisieren Sie Ihre Antwort.

z.

http://codepen.io/anon/pen/rrJYbJ

var a = $('a'), 
    wiki = a.attr('href'); 

function update(response) { 
    $('#response').html(JSON.stringify(response.quoteText)); 
    $('.author').html(JSON.stringify(response.quoteAuthor)); 
    a.attr('href',wiki + response.quoteAuthor); 
} 
+0

Danke, das ist perfekt. – Nex

0

Wo ist response kommen?

Haben Sie es als globale Variable deklariert? zB var response;

wenn ja, dann platzieren Sie einfach diesen Code:

$('a').attr('href', function() { 
    return this.href + response; // you dont need update.response just response 
}); 

nach wo Sie anrufen update();

+0

Antwort ist ein JSON, die Zuordnung zu einem href macht keinen Sinn. – Keith

0

Es gibt einige erros in Ihrem Code:

  • Wo Antwort kam?
  • Sie sollten link href aktualisieren, nachdem Sie Daten von api empfangen haben.

Sie können versuchen, Ihren Code wie folgt zu ändern:

<a href="https://en.wikipedia.org/wiki/" data-base-href="https://en.wikipedia.org/wiki/" class="author" target="_BLANK"></a> 

Und js:

function update(response) { 

    $('#response').html(JSON.stringify(response.quoteText)); 
    $('.author').html(JSON.stringify(response.quoteAuthor)); 

    $('a').each(function() { 
    var newHref = $(this).data('data-base-href')+response.quoteAuthor; 
    $(this).attr('href',newHref); 
    }); 
} 
+0

Leider jedes Mal, wenn Sie ein Angebot anfordern, werden die Autoren an die URL anhängen, .. Ich habe diesen Fehler auch gemacht, ich habe nur die Wiki-href außerhalb der Update-Funktion erfasst. – Keith

+0

Legen Sie die ursprüngliche href in einem Datenwert fest. Ich habe die Antwort aktualisiert. –