2013-09-03 4 views
0

버튼/링크의 텍스트를 변경하는 간단한 JQuery 스크립트를 작성했습니다. 그러나, 가지고있는 코드를 사용하면 일치하는 ID의 첫 번째 링크 만 변경됩니다.어떤 링크/버튼을 클릭했는지 알고 어떻게 내용을 바꿀 수 있습니까?

예를 들어 ID가 "쿠폰 링크"인 10 개의 링크가 있습니다. 사용자가이 중 하나를 누르면 속성 "coupon-code"가 링크의 현재 내용을 쿠폰 코드로 대체해야합니다. 현재는 한 번만 실행되며 두 번째 또는 세 번째 링크를 눌러도 첫 번째 링크 만 대체합니다.

// Coupon button checker 
$("#coupon-link").click(function() { 
    $(this).addClass("coupon-clicked"); 

    alert($(this).attr('coupon-code')); 

    if (!$(this).hasClass("coupon-shown") && $(this).hasClass("coupon-clicked")) { 
     // Replace the text with the coupon code 
     $(".coupon-clicked").html("<b>Rabattkod: " + $(this).attr('coupon-code') + "</b>"); 

     // This one has been unveiled 
     $(".coupon-clicked").addClass("coupon-shown"); 

     // Remove the clicked class 
     $(".coupon-clicked").removeClass("coupon-clicked"); 
    } 
}); 

그래서 내 문제는 기본적으로, 나는 각각 별도의 링크에 대한 .click를 실행하는 방법은 다음과 같습니다

이것은 내가 지금 가지고 무엇인가? 링크 # 1을 누를 때 링크 # 1의 속성이 내용으로 바뀌고 # 2와 # 3에서 같은 식으로 진행되도록하려면 어떻게해야합니까?

+6

* ID가 "쿠폰 링크"인 링크가 10 개 있습니다. * 내 친구 인 HTML은 유효하지 않습니다. 예측할 수있는 정상 성을 가지고 브라우저를 처리 할 브라우저가 없을 것으로 예상해야합니다. 'class','id' [***는 문서 내에서 유일해야합니다. ***] (http://www.w3.org/TR/html401/struct/global.html#h-7.5.2). –

+0

HTML 예제도 게시하십시오. – j08691

+1

JQuery가 트래버스 할 수 없다고 생각하지 않았습니다. 지금은 이해. 도와 줘서 고마워. – user2743374

답변

4

can not have 동일한 ID로 10 개의 링크.

$(".coupon-link").click(function() { 
//code 
+1

할 수는 있지만,하지 말아야합니다. –

+0

고마워요! 나는 너무 바보 같아. – user2743374

+0

전혀 아님 :) 커뮤니티에 오신 것을 환영합니다. –

0

ID는 페이지의 모든 태그에 대해 고유해야합니다. id = "coupon-link"를 class = "coupon-link"로 설정하십시오. 이 선택기를 사용하여 목표를 달성 할 수 있다고해도 :

$("a[id=coupon-link]").click(function() { 
// 
+0

ID가 고유해야한다는 것이 맞지만, 더 나은 접근 방법은 $ ('a # coupon- link '). click() – Eagle

+0

해당 코드는 주어진 id로 여러 요소를 선택하는 것을 목표로합니다. #id selector를 사용하면 주어진 id로 발견 된 첫 번째 요소 만 선택됩니다. –

관련 문제