jQuery 的选择器支持:揭开神秘面纱
虽然 jQuery 拥有广泛的 CSS 选择器支持,但某些选择器如 :nth-last-child()仍然难以捉摸。然而,它并不像看起来那么简单。
jQuery 对 CSS3 选择器的部分实现
尽管声称符合选择器级别 3,但 jQuery 的选择器实现在某些方面存在缺陷,如其文档中所阐明的。它依赖于其底层选择器库 Sizzle,它支持大多数但不是全部 3 级选择器。
支持和不支持的选择器
从 jQuery 1.9 开始,Sizzle 支持几乎所有 3 级选择器除了:
此外,jQuery 还添加了自己的选择器。
:nth-last-child() 操作
:nth-last-child() 选择器似乎可以在某些浏览器中工作,因为 jQuery 利用文档.querySelectorAll()。同时支持 :nth-last-child() 和 document.querySelectorAll() 的浏览器(例如 Firefox、Chrome 和 IE9)会返回 jQuery 可以利用的节点列表。
回退机制和 IE8 兼容性
如果 document.querySelectorAll() 失败,jQuery 将回退到 Sizzle。但是,Sizzle 不支持 :nth-last-child()。由于 IE8 没有实现 document.querySelectorAll(),后备机制失败,导致 IE8 上失败。
替代方案
升级到 jQuery 1.9 或更高版本解决:nth-last-child() 问题。或者,jQuery 提供自定义选择器扩展来实现不支持的伪类。
以上是jQuery 真的支持所有 CSS 选择器吗?的详细内容。更多信息请关注PHP中文网其他相关文章!