jQuery 了解
jQuery 是一个快速,小巧,功能丰富的 JavaScript 库。最主要的用途是用来做查询,能让我们对 HTML 文档遍历和操作 DOM、事件处理、执行动画以及 Ajax 变得更加简单;jQuery 极大地简化了 JavaScript 编程。
jQuery 的基本设计思想和主要用法,就是**“选择某个网页元素,然后对其进行某种操作”**。
jQuery 的优势:轻量级、强大的选择器、出色的 DOM 操作的封装、可靠的事件处理机制、完善的 Ajax、出色的浏览器兼容性、链式操作方式、隐式迭代、行为层与结构层的分离、不污染顶级变量、丰富的插件支持。
引入 jQuery:<script src="../js/jquery-1.9.1.min.js"></script>
不同版本的差异
- 1.x:兼容ie6、7、8,使用最为广泛的,官方只做BUG维护,功能不再新增。因此一般项目来说,使用1.x版本就可以了,最终版本:1.12.4 (2016年5月20日);推荐版本 1.9.1(移除了弃用接口,清理代码)
- 2.x:不兼容ie6、7、8,很少有人使用,官方只做BUG维护,功能不再新增。如果不考虑兼容低版本的浏览器可以使用2.x,最终版本:2.2.4 (2016年5月20日)
- 3.x:不兼容ie6、7、8,只支持最新的浏览器。除非特殊要求,一般不会使用3.x版本的,很多老的 jQuery 插件不支持这个版本。目前该版本是官方主要更新维护的版本。
链式操作风格
链式调用是通过 return this 的形式来实现的。通过对象上的方法最后加上 return this,把对象再返回回来,对象就可以继续调用方法,实现链式操作了。节省代码量,代码看起来更优雅。
-
对于同一个对象不超过 3 个操作的,可以直接写成一行
$("li").show().unbind("click");
-
对于同一个对象的较多操作,建议每行写一个操作
-
对于多个对象的少量操作,可以每个对象写一行;如果涉及到子元素可以适当的缩进
$ 符号
$是著名的 jQuery 符号。实际上,jQuery 把所有功能全部封装在一个全局变量 jQuery 中,而$也是一个合法的变量名,它是变量 jQuery 的别名。$() 其实和 jQuery() 是等价的,是一个函数。可以调用 jQuery.noConflict() 函数将变量 $ 的控制权释放。
-
(function(){ window.jQuery = window.$ = jQuery; }());
$() 是一个函数,参数传递不同,效果也不一样。
-
// CSS选择器 $(document) //选择整个文档对象 $('#myId') //选择ID为myId的网页元素 $('div.myClass') // 选择class为myClass的div元素 $('input[name=first]') // 选择name属性等于first的input元素 // jQuery特有表达式 $('a:first') //选择网页中第一个a元素 $('tr:odd') //选择表格的奇数行 $('#myForm :input') // 选择表单中的input元素 $('div:visible') //选择可见的div元素 $('div:gt(2)') // 选择所有的div元素,除了前三个 $('div:animated') // 选择当前处于动画状态的div元素
入口函数
网页中所有 DOM 结构加载完毕后就可以执行该函数中的代码。可以多次定义使用。
$(document).ready(function(){
...
});
// 可以简写成:
$(function(){
...
});
JavaScript 和 jQuery 对比
定位 DOM 对象
| 类型 | ID 属性 | class 属性 | 标签名 |
|---|---|---|---|
| javascript | getElementById() | getElementsByClassName() | getElementsByTagName() |
| jQuery | $("#id”) | $(".className”) | $(“tagName”) |
DOM 对象和 jQuery 对象
DOM 文档对象模型(Document Object Model),是 W3C 组织推荐的处理可扩展标志语言的标准编程接口。 通过 DOM 对 HTML 页面的解析,可以将页面元素解析为元素节点、属性节点和文本节点,这些解析出的节点对象,即 DOM 对象。DOM 对象可以使用 JavaScript 中的方法。
jQuery 对象是通过 jQuery 包装 DOM 对象后产生的对象,是 jQuery 独有的,可以使用 jQuery 里的方法。jQuery 对象是一个数组对象,该数组中的第 0 个元素即为该 jQuery 对象对应的 DOM 对象。
在 jQuery 对象中无法使用 DOM 对象的任何方法,同样 DOM 对象页不能使用 jQuery 里的方法。
jQuery 对象和 DOM 对象的相互转换:
| 对象类型 | 变量定义 | 相互转换(jQuery ⇿ DOM) |
|---|---|---|
| DOM | variable | var $vari = $(vari); 使用 $() 将 DOM 对象包装起来即可 |
| jQuery | $variable | 1、var vari = $vari[index]; 2、var vari = $vari.get(index); |