《锋利的jQuery》学习总结

  通过对《锋利的jQuery》(第二版)一书的学习,发现此书讲解通俗易懂,是学习jQuery的一本很好的指导书,特作如下总结。此书主要讲解了jQuery的常用操作,包括认识jQuery,jQuery选择器,jQuery中的DOM操作,jQuery中的事件和动画,jQuery对表单、表格的操作及更多应用,jQuery与Ajax的应用等。

第一章 认识jQuery

jQuery强调的理念是写得少,做得多(write less,do more),其具有链式操作方式、隐式迭代、行为层和结构层的分离等诸多优点。
获取jQuery的最新版本:http://jquery.com/

1、默认情况下jQuery用$作为自身的快捷方式,并且以下两种形式等价:

复制代码
1 $(document).ready(function(){
2     //代码
3 }); 
4 相当于
5 $(function(){
6     //代码
7 });
复制代码

2、jQuery对象和DOM对象的相互转换

(1)jQuery对象转换成DOM对象

jQuery提供了两种方法将一个jQuery对象转换成DOM对象,即[index]get(index)

1 var $ck = $("#ck");//jQuery对象
2 var ck= $ck[0];//或者var ck= $ck.get(0);
3 alert(ck.checked);//检测这个checkbox是否被选中

(2)DOM对象转换成jQuery对象

只需要使用$()把DOM对象包装起来,就可以获得一个jQuery对象了。

1 var ck= document.getElementById("ck");//DOM对象
2 var $ck = $(ck);

第二章 jQuery选择器

复制代码
1 //普通js判断获得元素是否存在
2 if(document.getElementById("mytt")){
3     //do something
4 }
5 
6 //juery判断获得元素是否存在
7 if($("#mytt").length > 0){  
8     //do something   
9 }
复制代码
1 //如果mytt元素不存在,则页面出现异常
2 document.getElementById("mytt").style.color = "red";
3 
4 //即使页面没有名称为mytt的元素,也不会报错,它是一个jQuery对象
5 $("#mytt").css("color","red");

常用选择器

1、基本选择器:

1 //注意:基本选择器中有id选择器,但是没有name选择器
2 $("#mytt") //根据给定的id选择匹配的元素,此处是选取id为mytt的元素,返回:单个元素
3 $(".myttClass") //根据给定的样式名称选择匹配的元素,此处是选取所有class为myttClass的元素,返回:集合元素
4 $("p") //根据给定的元素名称选择匹配的元素,此处是选取所有的

元素,返回:集合元素 5 $("#mytt,.myttClass,p") //根据给定的规则选择匹配的元素,此处是选取id为mytt的元素、class为myttClass的元素和

元素,返回:集合元素 6 $("*") //选择页面所有元素,返回:集合元素

2、层次选择器:

1 $("div span") //选择所有
元素下的所有元素(即所有后代元素,包括儿子和孙子等层的),返回:集合元素 2 $("div>span") //选择所有
元素下的子元素(仅子元素),返回:集合元素 3 $(".myttClass+div") //选择class样式名称为myttClass的下一个
元素(即紧接在myttClass元素后的同辈元素),等价于$(".myttClass").next("div"),返回:集合元素 4 $(".myttClass~div") //选择样式名称为myttClass之后的所有
元素(myttClass元素之后的同辈元素),等价于 $(".myttClass").nextAll("div"),返回:集合元素 5 //注意:$(".myttClass").siblings("div") //选择样式名称为myttClass的元素的所有同辈
元素(无论前后),返回集合元素

3、过滤选择器

(1)、基本过滤选择器

复制代码
 1 //注意:索引index从0开始
 2 $("div:first") //选择所有
元素中的第一个
元素,返回:单个元素 3 $("div:last") //选择所有
元素中的最后一个
元素,返回:单个元素 4 $("div:not(.myttClass)") //选择所有样式不包括myttClass的
元素,返回:集合元素 5 $("div:even") //选择所有索引是偶数的
元素,返回:集合元素 6 $("div:odd") //选择所有索引是奇数的
元素,返回:集合元素 7 $("div:eq(index)") //选择索引等于index的
元素,eq为equals的缩写,返回:单个元素 8 $("div:gt(index)") //选择所有索引大于index的
元素,gt为great than的缩写,返回:集合元素 9 $("div:lt(index)") //选择所有索引小于index的
元素,lt为less than的缩写,返回:集合元素 10 $(":header") //选择所有标题元素(如h1,h2,h3等),返回:集合元素 11 $("div:animated") //选择所有正在执行动画的
元素,返回:集合元素 12 $(":focus") //选择当前获取焦点的元素,返回:集合元素
复制代码

(2)、内容过滤选择器

1 $("div:contains('我')") //选择所有文本内容包含"我"的
元素,返回:集合元素 2 $("div:empty") //选择所有不包含子元素或者文本的
空元素,返回:集合元素 3 $("div:has(p)") //选择所有含有匹配子元素

元素,返回:集合元素 4 $("div:parent") //选择所有含有子元素或者文本的
元素,返回:集合元素

(3)、可见性选择器

1 $(":hidden") //选择所有不可见的元素(如:
等元素),返回:集合元素 2 $(":visible") //选择所有可见的元素,返回:集合元素

(4)、属性过滤选择器

复制代码
1 $("[id]") //选择所有含有id属性的元素,返回:集合元素
2 $("[class=myttClass]") //选择所有class属性值是myttClass的元素,返回:集合元素
3 $("[class!=myClass]") //选择所有class属性值不是myClass的元素,注意:没有title属性的元素也会被选取,返回:集合元素
4 $("[title^=tt]") //选择所有title属性值以tt开始的元素,返回:集合元素
5 $("[title$=tt]") //选择所有title属性值以tt结束的元素,返回:集合元素
6 $("[title*=tt]") //选择所有title属性值含有tt的元素,返回:集合元素
7 $('[title|="tt"]') //选择所有title属性值等于tt或以tt为前缀(该字符串后跟一个连字符'-')的元素,返回:集合元素
8 $('[title~="tt"]') //选择所有title属性值用空格分割的值中包含字符tt的元素,返回:集合元素
9 $("div[id][class=myttClass]") //选择所有含有id属性的并且class属性值是myttClass的元素,返回:集合元素
复制代码

(5)、子元素过滤选择器

1 //index从1开始
2 $(":nth-child(index/even/odd)") //选择每个父元素下的第index/偶数/奇数个子元素,返回:集合元素
3 $(":first-child") //选择每个父元素下的第一个子元素,返回:集合元素
4 $(":last-child") //选择每个父元素下的最后一个子元素,返回:集合元素
5 $("ul li:only-child") //在
    元素中选择只有一个
  • 元素的子元素,返回:集合元素

(6)、表单对象属性选择器

1 $("#myttForm:enabled") //选择id属性为myttForm表单内的所有可用元素,返回:集合元素
2 $("#myttForm:disabled") //选择id属性为myttForm表单内的所有不可用元素,返回:集合元素
3 $("input:checked") //选择所有被选中的元素(单选框、复选框),返回:集合元素
4 $("select:selected") //所有被选中的选项元素(下拉列表),返回:集合元素

4、表单选择器

复制代码
 1 $(":input") //选择所有