본문 바로가기
└ Java Script

[jQuery] jQuery에 대해서

by 짜장이누나 2014. 4. 2.

 jQuery 객체는 html string으로부터 만들어져온것 또는 document로부터 선택되어져온 DOM elements의 collection을 포함한다. jQuery 메소드는 대게 document와 element를 맞추기 위해 CSS selector를 사용하기 때문에 jQuery 객체에서 element 집합은 'matched element' 혹은 'selected element' 의 집합이라고 자주 불려진다.


 jQuery 객체는 스스로 배열처럼 행동한다 : 그들의 인텍스 [0]에서 [length-1]까지에 의해서 접근할 수 있는 객체에서 length 프로퍼티와 element들을 갖는다. jQuery 객체는 실제로 자바스크립트 배열 객체가 아님을 알아둬라. 그래서 jQuery는 join()과 같은 실제 배열 객체의 모든 메소드를 가지고 있지 않다. 




 대게, 당신은 jQuery 객체를 만들기 위해 jQuery()함수를 사용할 것이다. jQuery()는 일명 '$()'로 불리는 하나의 문자에 의해서 또한 접근 가능하다. 그렇지 않으면 이 option('$')을 사용할 수 없게 하기 위해 jQuery.noConflct() 를 호출했었다. 많은 jQuery메소드들은 jQuery 객체를 반환한다. 그래서 메소드 호출은 연결되어 질 수 있다.




 jQuery를 반환하는 API 호출에서, 반환된 값은 원래의 jQuery가 될 것이다. 반면에 그렇지 않으면 API에 의해 기록될 것이다. '.filter()' 혹은 '.not()' 와 같은 API메소드는 그들의 새로 들어온 set을 수정하고 그러므로 새로운  jQuery 객체를 반환한다.



$( "p" ).css( "color", "red" ).find( ",special" ).css( "color", "green" ) ;



function noConflict( deep ) {
	if ( window.$ === jQuery ) {  //'$'가 jQuery하면
        //다른 라이브러리에도 있을 $와 충돌 방지를 위해 '$'사용하지 못하도록 다른값(여기서는 _$)을 넣어준다
		window.$ = _$;  
	}

	if ( deep && window.jQuery === jQuery ) {
		window.jQuery = _jQuery;
	}

	return jQuery;   //jQuery를 return 한다.
}



 언제든지 당신은 jQuery 객체에서 element 집합으로 잠재적으로 변하는 '.fliter()' 혹은 '.find()'와 같은 destructive jQuery메소드를 사용한다. 그리고 그것은 실제로 결과를 도출한 element를 가진 새로운 jQuery 객체를 반환한다. 이전의 jQuery 객체를 반환하기 위해서 너는 '.end()' 메소드를 사용한다.




 하나의 jQuery  객체는 DOM element들을 포함하지 않는다면, 비어있을지도 모른다. 당신은 '$()'를 가지고 하나의 비어있는 jQuery 객체를 만들 수 있다 (즉, 모든 인자를 파싱하지 않는다.). 

하나의 jQuery 객체는 selector가 어떠한 element도 선택하지 않거나 연결된 메소드가 모든 element를 걸러낸다면 비어있을 지도 모른다. 이것은 에러가 아니다 : jQuery 객체에서 간단하게 불려진 어떠한 멀리있는 메소드들도 그것들은 실행할 element들을 가지고 있지 않기 때문에 영향을 받지 않는다.  그래서 아래 예시에서,  페이지에 badEntry 가 없다면 빨간색이 될 element는 없다.


$( ".badEntry" ).css( { color : "red" } ) ;