2011-01-24 13 views
2

リンクからURLを取得して同じdiv内の別のURLに適用する関数を作成する必要があります。私はそれをループすることができますが、常にすべてのリンクに最後の変数を割り当てます。感謝jQuery - divから1つのリンクからURLを抽出して別のリンクに追加する

$.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(関数(){

私は一度に それぞれにこれを適用することができますどのように
var linkHref= $(this).attr('href'); 

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

    }); 

+0

のようなものを見て$('a.secondlink').attr('href', linkHref)を変更します。あなたが目指しているものを得るのは難しいことです。 – MeanEYE

答えて

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')ページのすべてのリンクを取得することです。各ループの内側にあるからといって、それが何かにスコープされているわけではありません。

ちょうどあなたが問題になっているHTMLを投稿することができます$(this).siblings('a.secondlink').attr('href', linkHref);

+0

これは私のためには機能しませんが、私はあなたがhrefをすべてのリンクに適用するという正しい考えを持っていると思います。私が警告するとき(linkHref);それは成功裏にそれぞれを通過します。 – areid

+0

これを見落としましたが、これは正しい答えですが、特定のコンテキスト '$( 'a.firstLink'、this)' では検索を行う良い方法があります。要素検索のコンテキストをjqueryセレクタの2番目のパラメータとして渡すことができます。 –

+0

@Tom、それは素敵な機能ですが、彼はコンテナではなくリンクを通してループしているので、必ずしも実行可能というわけではありません。 – Stephen

関連する問題