javascript/jQuery2012.05.09 14:14


jQuery 셀릭터...

jQuery('#id') 혹은 $('#id') 형태로 가져온 객체는 Dom 객체가 아닌 jQuery 객체다.


즉, $('#id')와 document.getElementById('id')가 반환하는 값은 다르다.


document.getElementById는 말그대로 해당 id의 Dom 객체를 가져오지만,

jQuery 셀력터는 해당 id의 Dom객체를 감싼 jQuery객체를 가져온다.


그렇기에 경우에 따라서 Dom 객체를 사용해야 할 경우가 생기면 다음과같이 jQuery 객체에서 Dom 객체를 가져와야 한다.



1. $('#id')[0]


2. $('#id').get(0) 



jQuery객체도 배열 형태를 띄고 있기때문에 1번처럼 직접 배열 인덱스를 주어서 가져와도 되고,

2번처럼 .get() 메소드를 이용해서 가져와도 된다. 결과는 동일하다.


가져오는 객체가 여러개라면 해당 배열인덱스를 주어서 가져오면된다

ex>$('#id').get(3)


참고로 get메소드는 Dom객체들을 가진 Array[]를 리턴한다.


밑은 각각의 메소드의 차이를 보여주는 스샷 구글 크롬의 Watch Expression을 이용하였다.




Posted by 하품 - yawn 하품 - yawn

댓글을 달아 주세요

  1. jquery 가 배열을 사용한다는 걸, $('..').length 로 알고 있었으면서도,
    언제나 $('..').get(n) 을 사용했었는데, $('..')[n] 을 사용해도 되었던 거네요..
    역시 기본이 중요해요.. ~.~

    2012.05.21 08:59 [ ADDR : EDIT/ DEL : REPLY ]
    • 전 업무에 치이다보니 jQuery 개념이고 뭐고 일단 쓰고 보자 하고 쓰다가 ^^;;;
      버그[...] 일으킨 다음에 디버깅 하다가 알게됐죠

      역시 기본개념이 가장 중요합니다 ㅠㅠ

      2012.05.22 15:37 신고 [ ADDR : EDIT/ DEL ]