Sizzle
/*! * Sizzle CSS Selector Engine - v0.9.3 * Copyright 2009, The Dojo Foundation * Released under the MIT, BSD, and GPL Licenses. * More information: http://sizzlejs.com/ */
在jQurey 1.3.x 代码中找到的注释, 一个更加轻量级的js框架 Sizzle. 如果有时候你觉得 jQurey 还是太大了, 就用这个吧!
OK, 说说这次我为什么又跑去看 jQuery 代码, 主要是为了搞清楚一个问题:
首先, 如果html里面有一个div和一个span指定了相同的id怎么办? getElementById 毫不客气, 只认第一个.
在 jQurey 中, 如果你要选择后面那个元素, 那么$('span.id_name')或许是我们的另外一个选择, 这时我们享受了框架给我们提供的便利.
仔细想想, 框架一定不是简单的包装了 getElementById 这个常用函数, 它一定做了很多额外工作.
在jQuery 1.3.x 中 CSS Selector Engine 这样的工作被交给了 Sizzle 来完成, 查看 1.2.x 的代码则发现是 jQuery 自己做了这部分功能.
这也是为什么 1.3.x 宣称自己有着更好性能的原因.

feed
不过我在一大堆疯狂的dom操作之后, 还没来得及给我刚刚克隆的element id加个prefix, 所以联想到了这个很现实的问题.