2014-02-03 5 views
1

Я хочу взять ссылку, такие как:Заменить часть строки URL ссылки - почему бы не работать?

<a class="popup" href="http://www.example.com/puppies">More info</a> 

и превратить его в это:

<a class="popup" href=".puppies">More info</a> 

Я использую этот код, который эффективно добавляет период, но не удалить URL:

$('a.popup').each(function(){ 
    var lnk = this.href; 
    this.href = lnk.replace('http://www.example.com/', '.'); 

}); 

Знаете ли вы, почему он не работает и как я могу это исправить? Приведенный выше код дает мне следующее:

<a class="popup" href="http://www.example.com/.puppies">More info</a> 

Спасибо!

+3

Неа, отлично работает для меня. – Praveen

+0

О, странно ... Это добавляет мне период, но оставил остальную часть URL-адреса. Связи динамически сгенерированы, но я бы предположил, что если это была проблема с запуском JS до того, как была загружена ссылка, то период также не будет добавлен. Правильно? – LBF

+0

Вы правы. Код должен быть выполнен после создания тегов 'a'. – Praveen

ответ

0

Вы можете попробовать что-то вроде этого.

После того, как ссылка доступна в DOM, то вы можете сделать вашу логику

function sample(){ 
    if($('a.popup').is(':visible') == true){ 
    $('a.popup').each(function(){ 
     var lnk = this.href; 
     this.href = lnk.replace('http://www.example.com/', '.'); 

    }); 
    } 
    else{ 
    setTimeout(sample , 10) 

    } 
    } 
+0

Спасибо. Я попробовал эту попытку, но в ней появляется ошибка «Неисследовать SyntaxError: Неожиданная строка» в строке isvisible. Я не вижу ошибки в руке .... – LBF

+0

извините - я обновил - .is (': visible') – Prashobh

+0

Спасибо. Это все еще не работает (хотя на вашем переработанном коде действительно не было ошибок). Однако вы помогли указать мне в правильном направлении. Я просто понял, что мой исходный код работал, если я переместил его в (window) .load в конце моего документа JS, а не в (document) .ready. Я не думал четко. Спасибо! – LBF

Смежные вопросы