jQuery - перебирает извлечение URL-адреса div из одной ссылки, а затем добавляет его к другой ссылке. - PullRequest
2 голосов
/ 24 января 2011

Мне нужно создать функцию, которая получает URL-адрес из одной ссылки и применяет его к другой в том же div.Я могу заставить его проходить цикл, но он всегда присваивает последнюю переменную всем ссылкам.

Вот код:

$.fn.getLink = function() { 

    $('a.firstlink').each(function(){

         var linkHref= $(this).attr('href');

         ('a.secondlink').attr('href', linkHref)

    });

}

$('div.containing-links').each(function(){

    $(this).getLink();

});

Помощь оценена.

Спасибодля быстрых ответов, чтобы сделать его немного проще, вот код, который правильно добавляет ссылку , но повторяет последнюю переменную href для всех них:

$ ('a.firstlink') .each (function () {

var linkHref= $(this).attr('href');

$('a.secondlink').attr('href', linkHref);

    });

Как я могу применить это к по одному за раз?

Ответы [ 2 ]

2 голосов
/ 24 января 2011

Ваша проблема в том, что $('a.secondlink') захватывает все ссылки на странице. только то, что он находится внутри каждого цикла, не означает, что он ограничен чем-либо.

Просто измените $('a.secondlink').attr('href', linkHref) на что-то вроде $(this).siblings('a.secondlink').attr('href', linkHref);

1 голос
/ 24 января 2011

Я не думаю, что это хорошее место, чтобы написать плагин.Вы должны сделать это прямо в вашем .each() loop.

$('div.containing-links').each(function(){
    var $self    = $(this),
        $first   = $self.find('a.firstlink'),
        $second  = $self.find('a.secondlink');

    if( $first.length && $second.length )
        $second[0].href = $first[0].href;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...