2.7 其他选择器

2.7 其他选择器

2.7.1 jQuery提供的选择器的扩展

虽然 jQuery 提供了许多实用的选择器,但还是有可能不能满足各种多变的业务需要,不过jQuery选择器是可以进一步扩展的。

1.MoreSelectors for jQuery

这是一个jQuery的插件,用于增加更多的选择器,例如.color可以匹配颜色,:colIndex可以匹配表格中的列,:focus可以匹配获取焦点的元素等。

插件地址:http://plugins.jquery.com/project/moreSelectors

2.Basic XPath

这个插件可以让用户使用基本的XPath。jQuery最开始支持XPath选择器,但由于使用人数不多,且降低了选择器匹配的效率,因此在1.2以后的版本中取消了默认对XPath选择器的支持,改为通过插件来实现。

插件地址:http://plugins.jquery.com/project/xpath

2.7.2 其他使用CSS选择器的方法

除了 jQuery 提供了强大的选择器支持外,也有其他一些 JavaScript 脚本也提供了此类纯粹的CSS选择器的支持。

1.document.getElementsBySelector()

早在2003年,Simon Willison就编写了该脚本,它的作用是通过选择器来获取文档元素。读者可以通过以下代码获取元素。

[插图]

该脚本最新版本为0.4版,更新日期为2003年3月25日。

发布地址:http://simonwillison.net/2003/Mar/25/getElementsBySelector/

2.cssQuery()

这是Dean Edwards编写的一款利用CSS选择器查找元素的脚本。支持所有CSS1、CSS2以及部分CSS3选择器,jQuery的选择器其实是源自于此,它支持一些jQuery尚不支持的选择器,例如 E:link、E:nth-last-child(n)、E:root、E:lang(fr)、E:target和E[foo|=”bar”]等。语法结构如下:

[插图]

该脚本最新版本为2.0.2版,更新日期为2005年9月10日。

官方网站:http://dean.edwards.name/my/cssQuery/

3.querySelectorAll()

这不是一个脚本库,而是W3C在Selectors API草案中提到的方法,该草案的最新版本是在2007年12月21日发布的。此方法也是用于实现通过CSS选择器来获取元素的。IE 8的Beta 2中已经率先实现了此方法。相信其他几大浏览器也很快就能实现此方法。

JQuery的作者 John Resig 也表示将会利用 querySelectorAll()这个浏览器原生的方法来重构jQuery的选择器,同时增加一些jQuery扩展的选择器,届时jQuery选择器的执行效率也将大大提高。

W3C Selectors API:http://www.w3.org/TR/selectors-api/