Chapter1 认识JQuery
JQuery和JS的认识
- Javascript的弊端
- 复杂的DOM
- 不一致的浏览器实现和便捷的开发
- 调试工具的缺乏
- AJAX: asynchronous Javascript And XML
- JQuery: 轻量级的库,拥有强的选择器,出色的DOM操作,可靠的时间处理,和完善的兼容性和链式操作等功能。
- JQuery的优势:
- 轻量级 采用uglifyJS压缩
- 强大的选择器 支持CSS1到CSS3几乎所有的选择器, 以及JQuery自己的高级的选择器。
- 出色的DOM封装
- 可靠的事件处理机制,有graceful degradation, 循序渐进和非入侵式(unobtrusive)编程思想。
- 完善的AJAX
- 不污染顶级变量
- 出色的浏览器兼容性
- 链式操作
- 隐式迭代
- 行为层和结构层的分离
- 丰富的插件支持
- 完善的文档
- 开源
JQuery代码的编写
- JQuery分为生产版和开发版
- 在JQuery库中,$就是JQuery的一种简写形式
- First Code:
$(document).ready(function() {
alert('JQuery');
});
item | window.onload |
$(document).ready() |
---|---|---|
执行时机 | 必须等待网页中所有的内容加载完毕后(包括图片)才能执行 | 网页中所有的DOM结构绘制完毕后就执行 可能DOM元素相关联的东西并没有加载完 |
编写个数 | 不能写多个 | 可以写多个 |
简化写法 | 无 | $(function(){}) |
JQuery的代码风格:
- 对于同一个对象不超过三个操作,可以直接写成一行。
- 对于同一个对象的较多操作,建议每行写一个操作
- 对于多个对象的少量操作,可以每个对象写一行,如果涉及子元素,可以考虑适当的缩进。
$(this).addClass('a')
.children('li').show().end()
.siblings.removeClass('high');
JQuery对象和DOM对象
- DOM对象: Document Object Model by using the document method.
- JQuery对象: 就是通过JQuery包装DOM对象后产生的对象。 如果他是一个JQuery对象,那么就可以使用JQuery里面的方法。 因此,在JQuery对象中,无法使用DOM对象的任何方法。
JQuery对象和DOM对象之间的相互转换
- 首先, 我们先约定好获取的对象如果为JQuery对象,那么我们要在变量前面加上$。
var $v = $('#id');
- JQuery对象转成DOM对象
[index]
get(index)
JQuery对象是一个类似数组的对象,可以通过index
的方法来获得相应的DOM对象:
var c = $v[0]; // the dom element
另一种方法是JQuery本身提供的,通过get(index)
得到相应的DOM对象;
var c = $v.get(0);
- DOM对象转成JQuery对象
var $v = $(c);
然后我们就可以随意使用JQuery所提供的相关方法了。
- 解决JQuery和其他库的冲突
JQuery.noConflict(); // 释放$的控制权给其他库,JQuery仍然可以用JQuery来使用JQuery的东西。
//此外,我们可以自定义一个备用名称来access
var $j = JQuery.noConflict();
// it can be a, $a, awesome 等
- 如果不想给备用名,而同时使用$符号,我们可以:
//method 1
JQuery.noConflict();
JQuery(function($) {
//here we can still using the $ as the JQuery
});
// outside the scope, the $ will be released
//method 2
JQuery.noConflict();
(function($) {
$(function() {
//here we can still using the $ as the JQuery
});
})(JQuery);
// outside the scope, the $ will be released
- JQuery库在其他库之前导入
如果JQuery库在其他库之前就导入,那么可以直接使用JQuery来做JQuery一些的工作,而无需调用
JQuery.noConflict()
.