module dom {
[Supplemental, NoInterfaceObject]
interface NodeSelector {
Element querySelector(DOMString 선택기 내);
NodeList querySelectorAll(DOMString 선택기 내)
} ;
문서는 NodeSelector를 구현합니다.
DocumentFragment는 NodeSelector를 구현합니다. 즉, 이 세 가지 유형의 요소에는 모두 두 가지 방법이 있습니다. querySelector 및 querySelectorAll의 매개변수는
css selector
를 준수하는 문자열이어야 합니다. 차이점은 querySelector가 객체를 반환하고 querySelectorAll이 컬렉션(NodeList)을 반환한다는 것입니다.
현재 IE8/9 및 최신 버전의 Firefox/Chrome/Safari/Opera에서는 이미 이를 지원합니다.
페이지에서 클래스 속성이 "red"인 요소를 가져오려면 document.getElementsByClassName('red')를 사용하는 것 외에 document.querySelector('.red')를 사용할 수도 있습니다. 및 document.querySelectorAll('.red' ).
그러나 Element.querySelector 및 Element.querySelectorAll 구현에 다음과 같은 오류가 있습니다.
[code]
;p>< ;a href="http://www.sina.com.cn">SINA
이 두 가지 방법을 지원하는 브라우저에서는 "http://www.sina.com. cn"이 각각 팝업됩니다. /" 및 "1". 이는 원하는 요소 또는 요소 컬렉션이 쿼리되었음을 의미합니다. 이는 W3C 정의와 일치하지 않습니다. 정의에 따르면 "div a"는 요소 d1 범위 내에서 검색되어야 하며 d1에는 div가 전혀 없습니다. 따라서 null이면 빈 컬렉션이 각각 반환되어야 합니다.
jQuery 1.4.2 이하 버전에서는 document.querySelectorAll만 사용하고 Element.querySelectorAll은 사용하지 않습니다. Element.querySelectorAll은 jQuery 1.4.3 이후에 사용되었으나 수정되었습니다. 지정된 요소 내에서 검색하도록 선택기 앞에 "#__sizzle__"을 추가합니다(3903-3918행). 단순화
https://developer.mozilla.org/En/DOM/element. 쿼리선택기