jQuery의 선택기 지원: 미스터리 공개
jQuery는 광범위한 CSS 선택기 지원을 자랑하지만 :nth-last-child()와 같은 특정 선택기는 파악하기 어려운 상태로 남아 있습니다. 그러나 보기만큼 간단하지는 않습니다.
jQuery의 CSS3 선택기 부분 구현
Selector Level 3을 준수한다고 주장함에도 불구하고 jQuery의 선택기 구현은 일부 영역에서 부족합니다. , 해당 문서에 명시되어 있습니다. 레벨 3 선택기의 전부는 아니지만 대부분을 지원하는 기본 선택기 라이브러리인 Sizzle을 사용합니다.
지원되는 선택기와 지원되지 않는 선택기
Sizzle은 jQuery 1.9부터 지원합니다. 다음을 제외한 거의 모든 레벨 3 선택기:
또한 jQuery에는 자체 선택기가 추가되었습니다.
:nth-last-child() in Action
:nth-last-child( ) 선택기는 jQuery가 document.querySelectorAll()을 활용하기 때문에 일부 브라우저에서 작동하는 것으로 보입니다. Firefox, Chrome, IE9처럼 :nth-last-child() 및 document.querySelectorAll()을 모두 지원하는 브라우저는 jQuery가 활용할 수 있는 노드 목록을 반환합니다.
폴백 메커니즘 및 IE8 호환성
document.querySelectorAll()이 실패하면 jQuery는 Sizzle로 대체됩니다. 그러나 Sizzle은 :nth-last-child()를 지원하지 않습니다. IE8은 document.querySelectorAll()을 구현하지 않으므로 대체 메커니즘이 실패하여 IE8에서 오류가 발생합니다.
대체 솔루션
jQuery 1.9 이상으로 업그레이드하면 문제가 해결됩니다. :nth-last-child() 문제. 또는 jQuery는 지원되지 않는 의사 클래스를 구현하기 위한 사용자 정의 선택기 확장을 제공합니다.
위 내용은 jQuery는 정말로 모든 CSS 선택자를 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!