2016-10-07 5 views
0

Я хочу изменить href attritube по ссылке на этой части кодаИзменение HREF атрибута генерируемой строки из API с JQuery

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

Я использую этот код, чтобы изменить HREF атрибута

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

Я попытался сделать переменную в этой функции

function update(response) { 

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

} 

Но я не могу доступ к нему извне.

В принципе, я хочу ссылку на страницу автора Wikipedia, добавив имя $('.author') в конце ссылки. Добавлена ​​update.response до конца линии, но я получаю неопределенную

CodePen Link

+0

Просто небольшая заметка: создание codePen было очень полезно. Но даже лучше использовать фрагменты Stack Overflows. Это так же просто, как codePen, если не проще .. :) – Keith

ответ

0

Просто обновить HREF в точке вы получите ваш ответ.

например.

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

Спасибо, это прекрасно. – Nex

0

Где response приходит?

Вы объявили его глобальной переменной? например var response;

если да, то просто поместите этот код:

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

после, где вы звоните update();

+0

Ответ - это JSON, присваивая это href, не имеет смысла. – Keith

0

Там какая-то erros в вашем коде:

  • Где ответ пришел?
  • Вы должны обновить ссылку href после получения данных из api.

Вы можете попытаться изменить свой код так:

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

И ЯШ:

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

К сожалению, каждый раз, когда вы запрашиваете цитату, автор добавляет к URL-адресу. Я тоже сделал эту ошибку, я просто захватил wiki-href за пределами функции обновления. – Keith

+0

Просто установите исходное значение href в значение данных. Я обновил ответ. –