>  기사  >  웹 프론트엔드  >  jQuery는 정말로 모든 CSS 선택자를 지원합니까?

jQuery는 정말로 모든 CSS 선택자를 지원합니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-31 06:03:30209검색

Does jQuery Truly Support All CSS Selectors?

jQuery의 선택기 지원: 미스터리 공개

jQuery는 광범위한 CSS 선택기 지원을 자랑하지만 :nth-last-child()와 같은 특정 선택기는 파악하기 어려운 상태로 남아 있습니다. 그러나 보기만큼 간단하지는 않습니다.

jQuery의 CSS3 선택기 부분 구현

Selector Level 3을 준수한다고 주장함에도 불구하고 jQuery의 선택기 구현은 일부 영역에서 부족합니다. , 해당 문서에 명시되어 있습니다. 레벨 3 선택기의 전부는 아니지만 대부분을 지원하는 기본 선택기 라이브러리인 Sizzle을 사용합니다.

지원되는 선택기와 지원되지 않는 선택기

Sizzle은 jQuery 1.9부터 지원합니다. 다음을 제외한 거의 모든 레벨 3 선택기:

  • 의사 요소
  • :link/:visited 및 :hover와 같은 동적 의사 클래스
  • 네임스페이스 접두사

또한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.