2012-09-15 3 views
4

아래 코드 및 데모에서 http://jsfiddle.net/jasondavis/vp2YN/3/을 클릭하면 클릭 된 항목의 ID 속성을 가져 와서 Javascript의 변수에 할당해야합니다.클릭 된 링크의 ID 가져 오기

지금 코드는 클릭 한 항목에 관계없이 첫 번째 항목의 ID 이름을 반환합니다. Object has no method 'attr'

날의 ID 이름을 얻을 수 있도록하십시오 : 자바 스크립트에서

오류가 말하는 내가 그 선을 사용할 때

var clickedID = this.attr("id"); , 내가 얻을 ... 나는 주석이 줄을 볼 수 있습니다 클릭 한 링크 및 변수

HTML

<a href="#" style="display:block" class="button insertcolumn" id="one_half">2 Columns</a> 

<a href="#" style="display:block" class="button insertcolumn" id="one_third">3 Columns</a> 

<a href="#" style="display:block" class="button insertcolumn" id="one_fourth">4 Columns</a>​ 

자바 스크립트/J에 할당 쿼리

jQuery('.insertcolumn').click(function(){ 

    var clickedID = jQuery('.insertcolumn').attr("id"); 
    //var clickedID = this.attr("id"); 

    alert(clickedID); 

});​ 

데모 http://jsfiddle.net/jasondavis/vp2YN/3/

답변

9

당신은 당신이 jQuery를 래퍼로 클릭 한 하나를 참조 할 수있다!

당신은 당신은 단지 객체 id 전화에 더 좋을 것이다 (아무 이유없이 DOM을 통과하지 않고) ID를 얻으려면

$(this).attr('id'); 

를 사용하고 싶습니다. 속성의 유형에 관계없이 속성에 액세스와 속성의 이름에 따라 다음 코드를 사용하는 그러나

this.id; 

.

jQuery('.insertcolumn').click(function(){ 

    var clickedID = $(this).attr('id'); 


    alert(clickedID); 

});​ 
+0

당신은 * 항상 * * 모든 * JQuery와를 사용할 필요가 없습니다 :'VAR clickedID = this.id,' –

+0

@DavidThomas 진정한하지만 그는 다른 이름으로 ATTR를 호출 말? 저의 경우도 도움이 될 것입니다! 어쨌든 대답을 업데이트 할 것입니다 –

+1

예; 그렇지 않으면 불필요하게 jQuery 객체를 만들고 jQuery 메서드를 호출한다. 공정한 것은'attr()'메소드 (와 그 사용법)를 지적하는 것만으로도 충분 하겠지만, 솔직히 말해서 항상 jQuery가 모든 DOM 상호 작용에 항상 필요한 것은 아니라는 점을 지적하는 것이 좋습니다. 나는 덧붙여 말하자면, 당신이 당신의 대답에 잘못되었다고 제안한 것이 아니 었습니다. 아마 그 대답에 조금 더 많은 정보를 추가 할 가치가있을 것입니다. –