掌握jQuery的选择器2013-04-16选择器至少可以追溯到“CSS选择器”。jQuery的源代码中内嵌了一个叫Sizzle的对象,其实就是选择器了。在jQuery官网上显示Sizzle属于“Other jQuery Foundation Projects”,Sizzle能够独立为一个单独的项目,由此不难体会到选择器的重要性。看看下面三个页面,相比之下,jQuery选择器官方文档看起来是最“乱”的。
http://www.w3.org/TR/css3-selectors CSS选择器W3C标准文档 https://github.com/jquery/sizzle/wiki/Sizzle-Documentation Sizzle文档 http://api.jquery.com/category/selectors/ jQuery选择器官方文档
jquery1.9.0源代码有这样一行:jQuery.find = Sizzle;导入jquery.js和sizzle.js,可以看到jQuery.find和Sizzle确实是一回事。
iJs.showObjectNames("window.jQuery.find"); iJs.showObjectNames("window.Sizzle");
[Object] window.jQuery.find
|--[function] attr
|--[function] compile
|--[function] contains
|--[function] error
|--[function] getText
|--[function] isXML
|--[function] matches
|--[function] matchesSelector
|--[function] setDocument
|--[function] uniqueSort
|--[object] selectors
[Object] window.Sizzle
|--[function] attr
|--[function] compile
|--[function] contains
|--[function] error
|--[function] getText
|--[function] isXML
|--[function] matches
|--[function] matchesSelector
|--[function] setDocument
|--[function] uniqueSort
|--[object] selectors
既然Sizzle自称"supports virtually all CSS 3 Selectors",那么不妨就参考下面W3C描述吧,再难找到更好的文档片断了(点击链接可查看语法细节),不是么?(备注:这个Table贴过来总是出现显示问题,于是对html代码进行了编辑,其中一个替换是(<ashref="[^">]*">)[^<]*(</a>)替换为$1更多$2)