Fork me on GitHub

jQuery源码【一】

jQuery的出现是为了解决跨浏览器之间的兼容问题,使得DOM操作趋于统一。由于它强大的封住,深受开发人员的喜欢。不仅如此,它还具有以下优势。

  • 体积小,使用灵巧
  • 丰富的DOM选择器
  • 跨浏览器、链式语法
  • 强大的事件、样式支持
  • 强大的AJAX功能
  • 丰富的插件

##jQuery选择器

1
2
3
4
5
6
7
8
9
$('div>p'); //可以是字符串
$($('div>p')); //可以是jQuery对象
$(); //document简写
$(function (){
//与jQuery.ready一样
});
$([]); //参数可以是数组
$({}); //参数可以是对象
$(1); //参数可以是数字

执行时机

DOM文档加载是按训执行的,这与浏览器的渲染方式有关系,一般浏览器的渲染顺序是按照以下几个步骤执行的。

  1. 解析HTML结构
  2. 加载外部脚本和样式表文件
  3. 解析并执行脚本代码
  4. 构造HTML DOM模型
  5. 加载图片等外部文件
  6. 页面加载完毕

load事件必须等到网页所有内容全部加载完毕后才会执行。若一个页面包含许多多媒体文件,就会出现以下情况;网页文档已呈现出来,但网页数据还没有加载完成,导致load事件不能被即时触发。

而jQuery的ready事件是在DOM结构绘制完毕后就执行,也就说它在外部文件加载之前就已经执行了,这样就能确保网页文档的呈现于脚本的初始化设置保持同步。

总之,ready事件先于load事件被激活,若网页中没有加载外部文件,则它们的响应事件基本一样。

要做什么先看需要做什么

属性操作

如attribute、class和style都可看做属性操作,jQuery也扩展了一些属性,如缓存数据等。

元素操作

如元素的创建、添加、补加、移动、复制和删除等。对于添加操作又可分为追加、插入、前插、后插、内部前插、内部后插等。

内容操作

在JavsScript中提供了innerHTML属性操作的HTML内容,也可以使用childNodes操作元素包含的子节点内容,或使用value获取元素的值等。但是,jQuery把这些方法属性分为不同的方法,并形成方便内容操作的方法。

样式操作

CSS是DOM中最重要的模块,它包括元素的height、width、innerHTML、innerWidth、position、offset和display等,还包括由这些方法演变出来的各种动画方法等。

动画时CSS的高级形态,无论什么动画,都是基于时间的长短映射到元素的CSS的变化属性值。一般都是通过setIntercal()方法间隔设置CSS样式,从而形成动画。

事件操作

Event也是DOM的重要模块,包括addEvent、removeEvent和domready等。

jQuery做到了write less do more,以后,妈妈再也不用担心我的开发了。。。

好了,就先这样吧。正所谓饭要一口一口吃,技术要一点一点学。。。

据说帅的人都赏给博主几块钱零花钱。