1 jQuery 概述
1.1 JavaScript 库
库,是用于开发软件的子程序集合。库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码库链接。
JavaScript 库:即 library,是一个封装好的特定的集合(方法和函数)。就是把各种常用的代码片段,组织起来放在一个 js 文件里,组成一个包,这个包就是 JavaScript 库。
简单理解:就是一个 JS文件,里面对我们原生 js 代码进行了封装,存放到里面。这样我们就可以快速高效的使用这些封装好的功能了。
比如 jQuery,就是为了快速方便的操作 DOM,里面基本都是函数(方法)。再比如 Prototype、Dojo、Extjs 、 YUI、移动端的 zepto 等等,这些都是优秀的 JavaScript 库。它们都是对原生 JavaScript 的封装,内部都是用 JavaScript 实现的。
1.2 jQuery
jQuery 是一个快速、简洁的 JavaScript 框架,是继 Prototype 之后又一个优秀的 JavaScript 代码库( 或 JavaScript 框架 )。 jQuery 设计的宗旨是 “write Less,Do More”,即倡导写更少的代码,做更多的事情。
jQuery = javascript Query(查询)。意思是查询 js,把 js 中的 DOM 操作做了封装,我们可以快速的查询使用里面的功能。
它封装 JavaScript 常用的功能代码,提供一种简便的 JavaScript 设计模式,优化 HTML 文档操作、事件处理、动画设计和 Ajax 交互。
优势:
- 轻量级。体积小,不会影响页面加载速度
- 强大的选择器
- 方便的选择页面元素(模仿 css 选择器更精确、更灵活)
- 出色的 DOM 操作的封装
- 对事件、样式、动画支持,大大简化了 DOM 操作
- 跨浏览器兼容。基本兼容了现在主流的浏览器
- 链式操作、隐式迭代
- 支持插件扩展开发。有着丰富的第三方插件。
- 免费、开源
2 jQuery 基本使用
2.1 jQuery 下载
① 官网地址:jQuery
② 版本区别:
- 1x:兼容IE678,使用最为广泛,官网只做BUG维护,功能不再新增。因此一般项目来说,使用1.X版本就可以了。
- 2x:不兼容ie678,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x。(过渡)
- 3x:不兼容ie678,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的jQuery插件不支持这个版本。
2.2 导入方式
方式一:本地导入
直接在需要使用 jQuery 的页面引入 .js 文件:
<script src=" jQuery.js 文件路径"></script>
方式二:在线导入
我们可以通过在 script 的 src 属性中写一个网址来导入在线的 jquery 代码。
<script src="http://code.jquery.com/jquery-latest.js"></script>
2.3 jQuery 的入口函数
Js 入口函数会在 DOM 元素加载完毕并且图片也加载完毕之后再执行
jQuery 入口函数会等到 DOM 元素加载完毕,但不会等到图片加载完毕再执行
$(document).ready(function (){
alert("hello jquery");
})
jQuery(document).ready(function () {
alert("hello jquery");
})
// 简化方式,推荐
$(function () {
alert("hi jquery");
})
jQuery(function () {
alert("hi jquery");
})
2.4 jQuery 的顶级对象 $
- $是 jQuery 的别称,在代码中可以使用 jQuery 代替$,但为了方便,通常都使用$。
- 冲突——多库共存
原因:随着jQuery的流行,采用jQuery和$符为命名空间的 js 库越来越多,当然 jQuery 的$符也是参照的 Prototype库的,所以当多个库同时以$符或者 jQuery 为命名空间时,那么此时,就会产生冲突。
解决方法:
1.释放使用权
jQuery.noConflict();
//1.释放操作在其他函数之前
//2.释放后不能用dollar符
2.修改访问符号
var suiBian = jQuery.noConflict();
//此时suiBian为新的访问符号
2.5 DOM对象 和 jQuery 对象
DOM 对象:用原生 js 获取过来的对象就是 DOM 对象。
jQuery 对象:用 jQuery 方式获取过来的对象就是 jQuery 对象。本质:通过 $ 把 DOM 元素进行了封装(伪数组形式存储)。
区别:jQuery 对象只能使用 jQuery 方法,反之亦然。
相互转换:
- DOM --> jQuery
$('DOM对象');
- jQuery --> DOM(两种方式)
$('DOM对象')[index]; // index 是索引号
$('DOM对象').get(index);