2011-01-24 79 views
2

我需要創建一個函數,從一個鏈接獲取URL並將其應用於另一個div中的另一個鏈接。我可以讓它循環,但它總是將最後一個變量分配給所有鏈接。jQuery - 循環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」) 。每個(函數(){

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

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

    }); 

我怎麼能在同一時間將此每個一個?

+0

你能在問題發送HTML。要實現你的目標很難。 – MeanEYE 2011-01-24 12:52:30

回答

1

我不認爲這是一個好地方來寫插件,你應該做的它直接在你的.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; 
}); 
2

你的問題是,$('a.secondlink')抓住頁面上的所有鏈接。僅僅因爲它在每個循環中並不意味着它被限制在任何東西上。

只要改變$('a.secondlink').attr('href', linkHref)看起來像$(this).siblings('a.secondlink').attr('href', linkHref);

+0

這不適合我,但我認爲你有正確的想法,它將href應用於所有鏈接。當我提醒(linkHref);它通過每一個成功。 – areid 2011-01-24 13:25:32

相關問題