jquery에서 href를 업데이트 (추가)하는 방법은 무엇입니까?


79

Google지도 API로 연결되는 링크 목록이 있습니다.

링크에는 이미 daddr(destination) 매개 변수가 정적으로 있습니다. Geo-Location을 사용하여 사용자 위치를 찾고 saddr데이터를 받으면 링크에 (소스 주소)를 추가하고 싶습니다 .

그래서 기본적으로 &saddr=50.1234567,-50.03452Google지도를 가리키는 모든 링크의 꼬리 끝에 같은 것을 추가해야 합니다.

모든 링크에는 directions-link

과에서 이 페이지 내가 그들을 변경하는 방법을 알아 낸 :

$("a.directions-link").attr("href", "http://www.google.com/");

그러나 href가 이미 무엇인지 변경하지 않고 href 끝에 내 가치를 추가하고 싶습니다.

어떻게 할 수 있습니까?

답변:


149
var _href = $("a.directions-link").attr("href");
$("a.directions-link").attr("href", _href + '&saddr=50.1234567,-50.03452');

루프하려면 each()

$("a.directions-link").each(function() {
   var $this = $(this);       
   var _href = $this.attr("href"); 
   $this.attr("href", _href + '&saddr=50.1234567,-50.03452');
});

감사합니다. href가 다른 길 찾기 링크가 둘 이상있는 경우이 작업이 작동합니까? 감사합니다!
JD Isaacks

각 인스턴스에 대해 동일한 것을 추가하는 경우 a.directions-link예. 그렇지 않으면 각 href에 다른 값을 추가하는 경우를 사용 each()하여 각 값을 반복하고 추가해야합니다.
Gabe

동일한 값을 추가하고 있지만 각 href는 처음부터 다릅니다. 따라서 첫 번째가 one.html이고 두 번째가 two.html이면 둘 다 one.html & saddr이됩니다. 첫 번째 a.directions-link의 href 만 캡처하고 모두를 위해 사용하기 때문입니다. 그래서 each ()를 사용해야한다고 생각합니다. 그것의 사용에 대해 eleborate에 관심이 있습니까? 감사!!
JD Isaacks

네, 루프는 제가 필요한 것입니다. 감사합니다! :)
JD Isaacks

41

jQuery 1.4에는이를위한 새로운 기능이 있으며 규칙이 적용됩니다. 나는 그것이 무엇인지 잊어 버렸지 만 다음과 같이 사용합니다.

$("a.directions-link").attr("href", function(i, href) {
  return href + '?q=testing';
});

그것은 모든 요소를 ​​반복하므로 $ .each가 필요하지 않습니다.


4
그것은 나를 위해 작동하지 않았지만 작동했습니다 .attr('href', function(i) { return $(this).attr('href') + '?q=testing'; }).
Elbert Alias

3
@elfbertf 그것은 나를 위해 작동합니다. jquery> = 1.4를 사용하고 있습니까? 두 번째 인수로 href 변수를 포함 시켰습니까?
zaius 2011-04-07

$ ( "# calculator"). attr ( "href", function (i, href) {return href + '? ves ='+ 23 + '& v ='+ 'sdfds';}); 하지 작업
des1roer

jsfiddle.net/qz9eLr2z 에서 테스트하면 작동합니다. api.jquery.com/attr/#attr-attributeName-function 은 이것이 jQuery 1.1에 추가 되었다고 말합니다.
Jacob C.

1
@JacobC. attr이 함수를 받도록 허용하는 것은 1.1에서 추가되었지만 현재 값을 두 번째 매개 변수로 전달하는 것은 1.4에서 추가되었습니다. 다음은 jquery 1.3에서 작동하지 않는 예입니다. jsfiddle.net/qz9eLr2z/1
zaius

2
$("a.directions-link").attr("href", $("a.directions-link").attr("href")+"...your additions...");

1
이것은 잘못된 것입니다. 첫 번째로 일치하는 ".directions-link"의 href를 해당 클래스의 모든 링크에 적용합니다. jsfiddle.net/yuezewaw
Jacob C.

-1

다음은 URL에 특정 문자가 포함 된 URL에 매개 변수를 추가하기 위해 시도한 것입니다.

jQuery('a[href*="google.com"]').attr('href', function(i,href) {
        //jquery date addition
        var requiredDate = new Date();
        var numberOfDaysToAdd = 60;
        requiredDate.setDate(requiredDate.getDate() + numberOfDaysToAdd); 
        //var convertedDate  = requiredDate.format('d-M-Y');
        //var newDate = datepicker.formatDate('yy/mm/dd', requiredDate );
        //console.log(requiredDate);

        var month   = requiredDate.getMonth()+1;
        var day     = requiredDate.getDate();

        var output = requiredDate.getFullYear() + '/' + ((''+month).length<2 ? '0' : '') + month + '/' + ((''+day).length<2 ? '0' : '') + day;
        //

작업 예 클릭


1
이 게시물의 목적은 무엇입니까? 질문입니까, 대답입니까? 아니면 그냥 이상한 코멘트? 나중이라면 잘못된 위치에 게시하는 것입니다. ;-)
Phill Healey

jsfiddle에서 데모 샘플을 만들었지 만 링크가 잘못되었습니다. 이제 오른쪽 URL을 가리 킵니다.
Bikram Shrestha

당신의 '답변'은 말이 안되지만 사실은 기괴한 진술에 가깝습니다.
Phill Healey
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.