Jquery源码分析---构建Jquery的Dom元素
2010-09-14 13:36:44 来源:WEB开发网仔细想一下,没有什么好适用的场合,但是jquery.fn.siblings中的用法倒是最合适的用法。找到自己的所有兄弟。找自己的所有兄弟最好的方法当然是找到父亲节点,然后排除自身节点。采用childNodes再查找当前元素并去掉和这个操作差不多,效率应该会高点。
3.3采用CSS方式查找Dom节点
在jquery.fn.init()中,我们对这句jQuery(context).find(selector)没有深入去分析,在使用$()时候,大部分时间都是在使用这句来完成功能的。它就是调用CSS Selector到Dom树去查找和相符CSS语法的元素节点(集)。jQuery名字中query的意义就体现在这里。
根据符合CSS语法的字符串,它是怎么到DOM文档树去找到符合条件的元素呢?无论怎么解析这个字符串,它总得有调用最原始的函数来完成功能,这些函数是什么?
在没有分析Selector源码之前,说来也不会相信功能强大的selector是建立在元素的getElementsByTagName,getElementById直接引用和元素的childNodes firstChild、lastChild、nextSibling、parentNode、previousSibling等间接引用这些函数的使用。
在分析源码之前,我们得了解一下CSS selector,它可以粗略分成几类基本的类型:ID选择器(#id),Class选择器(.class),类型(type)选择器(p),Combinators,属性(Attribute)选择器,Pseudo Classes选择器等。这些都是单一的选择器,可以在应用中把它们组合起来,如:div#id, div:last-child。
我们先分析一个例子:span[class=’test’],它是属性选择器,我们一般把它做一个整体来理解:在Dom文档树中找到其class等于’test’的且标签为span的元素。这是一步到位,直接从dom文档树查找(select)所需要的元素。
更多精彩
赞助商链接