jQuery 1.3.2 Release – 달라진 건?

jQuery가 또다시 버전업했습니다. ajaxian.com의 “jQuery 1.3.2 and beyond“라는 글에서 릴리즈 정보를 알게 되습니다. 제가 다니는 회사에서는 jQuery.com 사이트에 못들어가서 정확할 릴리즈정보를 알수 없지만, “jQuery 1.3.2 and beyond”의 내용을 보면 다음과 같은 부분이 변경되었다고 하네요.

jQuery 1.3.2 has been released and although it is mainly a bug fix maintenance release, it does a little more, including:

* Elements Returned in Document Order
* .live() Can Now Prevent Bubbling
* :visible/:hidden Overhauled
* .height()/.width() Overhauled
* Selector Speed-up in IE
* .appendTo()/etc. Now Return Inserted Elements

“.appendTo()/etc. Now Return Inserted Elements” … 응?? … “.appendTo()/등등은 이제 추가된 요소들을 리턴한다고?”

appendTo() 나 append() 등의 DOM Manipulation 메소드들을 사용하다 보면 어떤것은 추가된 요소가 리턴되고 어떤것은 parent가 리턴되서 그때마다 확인해야 했었는데 이제는 모두 추가된 요소가 리턴되도록 변경되었나 봅니다. 이젠 리턴값이 무엇인지 고민할 필요가 없겠군요.

그리고 appendTo() 테스트 하다가 알게 된것인데 jQuery 객체가 거의 완벽한 Array 객체가 된것 같습니다.

console.log($(document));

firebug를 사용해서 console에 로그를 남기면 1.3.1 버전에서는 “Object 0=document length=1 context=document jquery=1.3.1″라고 표시됩니다. 1.3.2 버전에서는 “[ document ]”라고 표시됩니다. 앗, 1.3.2버전은 Array 객체라고 표시하고 있네요. 그래서, jQuery 객체에 어떤 메소드들이 들어갔나 봤더니 sort(), splice()가 들어가 있군요. 하지만 Array 객체의 join()이나 pop() 등의 메소드가 없는걸로 봐서는 100% Array 객체는 아닌가봅니다. 필요에 의해서 sort()와 splice()가 들어갔나 봅니다.

이게 뭔 소리냐구요?

그건 작업해야 하는 DOM Element들을 담고 있는 jQuery 객체가 Array 객체가 아닌데 firebug에서는 1.3.2버전의 jQuery객체가 Array 객체라고 표시 한다는 이야기입니다. 다시 말하지만 jQuery의 객체는 일반 객체입니다. 여기에 length라는 속성을 추가해주었고, push()라는 메소드를 추가해서 배열처럼 쓰고 있는 것입니다. 얼핏 보면 Array 객체와 유사해서 배열을 사용하는 것으로 착각 할 수 있지만 jQuery는 배열이 아닙니다. 따라서 join()이나 pop(), concat() 같은 Array 객체의 매소드를 사용할 수 없다는 이야기 입니다.

암무튼, 표시되는 내용이 바뀌면서 firebug console에 표시 되는 Element로 마우스 커서를 가져가면 브라우저 화면상에 표시 되서 좋습니다. 어디 있는 DOM Elements인지 바로 확인이 되네요. ^^

Advertisements

Published by: benant

WEB PROGRAMMER. PHP, ASP, XML, Javascript, VBScript, PL/SQL, MySQL, Oracle. scrollads.co.kr 새로운 모바일 광고 서비스. trenue.com 시스탬 트래이딩 서비스. blogman.co.kr 블로그 운영 관리 서비스. creget.co.kr 해외 상품 구매대행. 핫딜 정보 제공 서비스. fgshop.co.kr - 독립형 쇼핑몰 솔루션.

카테고리 컴퓨터, Web태그댓글 남기기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중