版本:
1.x
2.x:不支持IE6,7,8,代码更精简
$符号:著名的jQuery符号,实际上,jQuery把所有功能全部封装在一个全局变量jQuery中,而$也是一个合法的变量名,它是变量jQuery的别名。本质是一个函数,函数也是对象。
选择器:
- 按id查找:$("#id"),返回jQuery对象,数组[]
- 按tag查找:$("p")
- 按class查找:$(".class"),包含class节点全部返回
- 按属性查找:$("[name=email]"),name^=email email前缀;name$=email email后缀
- 组合查找:$("input[name=email]")
- 多项选择器:$("p, div"),把p和div都选出来
层级选择器:
如果两个DOM元素具有层级关系,可以用$("ancestor descendant")来选择,多层选择也是允许的
子选择器:$(parent > child),只能父子关系
过滤器:$("ul.lang li:first-child"),通常附加在选择器上
表单相关:
查找:
- find("#id")
- find(".class")
- find("[name=email]")
- parent()父节点
- next()
- prev()
过滤:
- filter()
- map()
- first()
- last()
- slice()
操作DOM:
修改text和html
text(),html():无参获取文本,传参设置文本
执行一个操作,作用在一组DOM上,可以批量操作
修改CSS:
- div.css("color");div.hasClass();获取css属性
- div.css("color", "#000000");div.addClass();设置css属性
- div.css("color", "");div.removeClass();清除css属性
显示隐藏DOM:
- show();
- hide();
获取DOM信息:
- attr()
- removeAttr()
- prop()
修改DOM结构:
- append();
- prepend();
- remove();
事件:on用来绑定一个事件,传入事件名称和相应的处理函数
a.on("click", function(){
});
a.click(function(){
});
鼠标事件:
- click
- dbclick
- mouseenter
- mouseleave
- mousemove
- hover
键盘事件:
- keyup
- keydown
- keypress
其他事件
- focus
- blur
- change
- submit
- ready(页面被载入并且DOM树完成初始化后触发)
$("document").on("ready", function(){
});
$("document").ready(function(){
});
$(function(){
});
我们自己的代码必须放到document的ready事件中,保证DOM已完成初始化
可以反复绑定事件处理函数,依次执行
$(function(){});
$(function(){});
事件参数:Event e
$("#test").mousemove(function(e) {
e.pageX;
});
取消绑定:
a.off("click", function_name);
不可以使用function(){},不同的函数对象
a.off("click");一次移除已绑定的所有处理函数
事件触发条件:
事件触发总是由用户触发的
调用无参函数,例如change()来触发
浏览器安全限制:
有些javascript代码只有在用户触发下才能执行,例如window.open()函数
动画:animate();
AJAX:
- async:是否异步执行AJAX请求,默认true
- method:发送的method,默认为"Get",可以改为POST,PUT
- contentType:发送post请求的格式,application/x-www-form-urlencoded;
- data:发送的数据,字符串,数组,object,如果是GET,data会被附加到URL上
- headers:发送的额外的http头,必须是一个object
- dataType:接收的数据格式,html,xml,json,text等
$.ajax("/api/categories", {
dataType: "json"
});
$.get();
$.post();
$.getJson();
安全限制,跨域,jsonp
扩展:
编写jQuery插件,特定元素扩展,this.filter("a").each();
$.fn.highlight = function(){
return this; 支持链式操作
}
$.extend({},{},options);
错误处理:
try...catch(e)...finally...
throw
underscore:"_"