2011-01-24 2 views
2

하나의 링크에서 URL을 가져 와서 같은 div 내 다른 URL에 적용하는 함수를 만들어야합니다. 루프를 통과 할 수는 있지만 항상 마지막 변수를 모든 링크에 할당합니다. 감사jQuery - div를 통해 하나의 링크에서 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 selector의 두 번째 매개 변수로 요소 검색을위한 컨텍스트를 전달할 수 있습니다 . –

+0

@Tom, 좋은 기능입니다.하지만 그는 컨테이너가 아니라 링크를 통해 반복하고 있기 때문에 반드시 실행 가능하지는 않습니다. – Stephen

관련 문제