为四川人民祈祷! www.onefoundation.cn

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 宣称自己有着更好性能的原因.
 
by kernel1983
Comments »
  1. 2009-04-5 12:41
    窃以为问题出在不应该让html中出现两个元素指向相同的id.
  2. kernel1983:
    2009-04-5 09:47
    楼上正解

    不过我在一大堆疯狂的dom操作之后, 还没来得及给我刚刚克隆的element id加个prefix, 所以联想到了这个很现实的问题.
  3. 2009-04-20 11:09
    怪不得jQuery最近的版本大了一些,jQuery还是很好用的。
Leave a Comment:
code:183