如何在JavaScript中测试CSS选择器?

Por*_*oru 5 javascript css dom css-selectors selectors-api

我怎么能测试CSS1-3选择器来检查它们是否得到了正确的元素,例如使用JavaScript(也许是jQuery)?

Bol*_*ock 14

到目前为止,最简单的传统方法是根本不使用JavaScript,只需手动设置测试页面,您可以根据自己的内容测试选择器.您在Web上看到的测试用例(如着名的CSS3.info选择器测试)实际上只是在线托管的加强版本.

但是如果您正在寻找JavaScript方法,可以尝试使用Selectors API.它可以在现代DOM实现(IE8 +和其他)中使用,它提供了一个JavaScript前端,用于使用CSS选择器查询元素节点的DOM,以及测试给定浏览器本机支持的CSS选择器.

(对于没有实现Selectors API的浏览器,你必须依赖jQuery,但请记住,它提供了对浏览器支持的不同选择器集的支持,以及它自己的非标准扩展.在Selectors规范中找到.可以在此处找到使用jQuery与Chrome的JavaScript控制台测试选择器的示例.)

调用querySelector()querySelectorAll()取决于您要测试的内容,并检查返回值(最好在浏览器的开发人员工具中,因为您只是在测试):

  • 如果找到匹配,则前一个方法返回第一个Element匹配,而后一个返回匹配为a的所有元素NodeList.

  • 如果没有找到,前者返回,null而后者返回空NodeList.

  • 如果选择器无效,将抛出一个您可以捕获的异常.

以下是Firefox 10上Firebug控制台中命令编辑器(多行)的一些示例,在此问题上进行了测试: