jQuery源码分析笔记(2)变量列表_jquery
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了jQuery源码分析笔记(2)变量列表_jquery,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4131字,纯文字阅读大概需要6分钟。
内容图文
![jQuery源码分析笔记(2)变量列表_jquery](/upload/InfoBanner/zyjiaocheng/314/60537c5943224f5696c2464b91841ebf.jpg)
_$ = window.$;
这两个变量是jQuery唯一使用的两个全局变量。在jQuery.noConflict()函数中,会把这两个变量恢复回去。
对于浏览器检测,jQuery使用的是检查UserAgent,而没有使用特性检测。
rwebkit = /(webkit)[ \/]([\w.]+)/,
ropera = /(opear)(?:.*version)?[ \/](\w+)/,
rmsie = /(msie) ([\w.]+)/,
rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
初始化函数init
jQuery对JS对象的处理比较绕,而最终目的就是把jQuery选择器得到的结果变成和数组差不多的一个对象。有length,first,last等。因为$("...")就是从DOM树从选择一些节点出来。但是,$还有很多其他功能,比如常用的$(function() { ... })用来页面加载后初始化执行,$("<..>...")来直接得到一个节点,用来append到DOM树中。
接下来从93行开始就是很长的一段init函数。Init: function(selector, context, rootjQuery)
步骤:
1、Selector是非法参数:空字符,null和undefined则直接返回this。即有默认属性的jQuery对象。
2、Selector是DOMElement。即用原生的JS,比如getElementById等得到的元素。那么,相当于把原生的DOM对象用$包装一次。把这个元素放到内部数组的第一个位置,并把length设置为1。然后返回。
3、特殊优化处理$("body")。即document.body元素。
4、Selector是以<开头,以>结尾的字符串。那么假定是想用字符串新建一个DOM元素。比如$("博客园")。为了安全起见,这里使用了一个正则表达式来检查,到底是<...>...形式还是#id的形式。
quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/。在quickExpr.exec(selector)后,如果是HTML字符串,那么会得到[match, match, undefined],而#id形式会得到[#id, undefined, id]的结果。这样就把字符串区别开了。
对于HTML字符串,如果只有一个tag,那么直接调用createElement。否则调用一个createFragment辅助函数,这个函数使用createDocumentFragment,然后把所有tag都插进去。
createFragment实现在5892行,这里有一个值得注意的地方就是jQuery对于HTML片段做了缓存处理。而且对于不同的浏览器和元素有不同的处理,作者写了大段的注释说明。归纳起来就是(1)只缓存小于0.5KB的小片段。(2)selected状态不缓存。(3)IE6的
内容总结
以上是互联网集市为您收集整理的jQuery源码分析笔记(2)变量列表_jquery全部内容,希望文章能够帮你解决jQuery源码分析笔记(2)变量列表_jquery所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。