第一章 认识JQuery

1、jQuery的优势

2、配置jQuery的环境

3、编写jQuery的代码

1)在jQuery库中,$就是jQuery的一个简写形式,例如$(document)和jQuery(document)是等价的。

2)window.onload与$(document).ready()的对比

4、jQuery的代码风格

1)链式操作风格:对于同一个对象不超过3个操作的,可以直接写成一行;对于同一个对象的较多操作,建议每行写一个操作;对于多个对象的少量操作,可以每个对象写一行,如果涉及子元素,可以考虑适当地缩进。

2)为代码添加注释

5、jQuery对象和DOM对象

1)在JQuery对象中无法使用DOM对象的任何方法,反之亦然;用#id作为选择符取得的是jQuery对象而并非是document.getElementById(“id”)所取得的DOM对象。

2)jQuery对象和DOM对象的相互转换:首先约定,如果获取的对象是jQuery对象,那么在变量前面加上$。

jQuery对象转成DOM对象:jQuery对象是一个类似数组的对象,可以通过[index]的方法得到相应的DOM对象;另一种方法是jQuery本身提供的,通过get(index)方法得到相应的DOM对象。

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

6、解决jQuery和其他库的冲突

1)jQuery库在其他库之后导入:在其他库和jQuery库都被加载完毕后,可以再任何时候调用jQuery.noConflict()函数来讲变量$的控制权移交给其他JavaScript库。

2)jQuery库在其他库之前导入:那么可以直接使用“jQuery”来做一些jQuery的工作,同时可以使用$()方法作为其他库的快捷方式。

第二章 jQuery的选择器

1、jQuery选择器的优势

1)简洁的写法

2)支持CSS1、CSS2的全部和CSS3的部分选择器

3)完善的处理机制:使用jQuery获取网页中不存在的元素不会报错;当要用jQuery检查某个元素在网页上是否存在时,应该根据获取到元素的长度来判断,或者转化成DOM对象来判断。

2、基本选择器:通过元素id、class和标签名等来查找DOM元素

选择器

描述

返回

$(“#id”)

根据给定的id匹配一个元素

单个元素

$(“.class”)

根据给定的类名匹配元素

集合元素

$(“element”)

根据给定的元素名匹配元素

集合元素

$(“*”)

匹配所有元素

集合元素

$(“selector1,......,selectorN”)

将每一个选择器匹配到的元素合并后一起返回

集合元素

 

 

3、层次选择器:

选择器

描述

返回

$(“ancestor descendant”)

选取祖先元素里的所有后代元素

集合元素

$(“parent>child”)

选取父元素下的所有子元素

集合元素

$(“prev+next”)

选取下一个紧跟的同辈元素

集合元素

$(“prev~siblings”)

选取后面所有的同辈元素

集合元素

4、过滤选择器:

1)基本过滤选择器

选择器

描述

返回

:first

选取第一个元素

单个元素

:last

选取最后一个元素

单个元素

:not(selector)

去除所有与给定选择器匹配的元素

集合元素

:even

选取索引是偶数的所有元素,索引从0开始

集合元素

:odd

选取索引是奇数的所有元素,索引从0开始

集合元素

:eq(index)

选取索引等于index的元素,index从0开始

单个元素

:gt(index)

选取索引大于index的元素,index从0开始

集合元素

:lt(index)

选取索引小于index的元素,index从0开始

集合元素

:header

选取所有的标题元素,h1~h6

集合元素

:animated

选取当前正在执行动画的所有元素

集合元素

:focus

选取当前获取焦点的元素

集合元素

2)内容过滤选择器

选择器

描述

返回

:contains(text)

选取含有文本内容为“text”的元素

集合元素

:empty

选取不包含子元素或者文本的空元素

集合元素

:has(selector)

选取含有选择器所匹配的元素的元素

集合元素

:parent

选取含有子元素或者文本的元素

集合元素

3)可见性过滤选择器

选择器

描述

返回

:hidden

选取所有不可见的元素

集合元素

:visible

选取所有可见的元素

集合元素

4)属性过滤选择器

选择器

描述

返回

[attribute]

选取拥有此属性的元素

集合元素

[attribute = value]

选取属性的值为value的元素

集合元素

[attribute != value]

选取属性的值不为value的元素

集合元素

[attribute ^= value]

选取属性的值为以value开始的元素

集合元素

[attribute $= value]

选取属性的值为以value结束的元素

集合元素

[attribute *= value]

选取属性的值含有value的元素

集合元素

[attribute |= value]

选取属性等于给定字符串或以该字符串为前缀(该字符串后跟一个连字符“-”)的元素

集合元素

[attribute ~= value]

选取属性用空格分隔的值中包含一个给定值的元素

集合元素

[attribute 1][attribute 2][attribute 3]

用属性选择器合并成一个复合选择器,满足多个条件。每选择一次,缩小一次范围

集合元素

5)子元素过滤选择器

选择器

描述

返回

:nth-child(even)

选取每个父元素下的索引值是偶数的所有元素

集合元素

:nth-child(odd)

选取每个父元素下的索引值是奇数的所有元素

集合元素

:nth-child(2)

选取每个父元素下的索引值等于2的所有元素

集合元素

:nth-child(3n)

选取每个父元素下的索引值是3的倍数的元素,n从1开始

集合元素

:nth-child(3n+1)

选取每个父元素下的索引值是(3n+1)的元素,n从1开始

集合元素

:first-child

选取每个父元素的第一个子元素

集合元素

:last-child

选取每个父元素的最后一个子元素

集合元素

:only-child

选取每个父元素的唯一一个子元素(如果父元素含有多个子元素,则不匹配)

集合元素

6)表单对象属性过滤选择器

选择器

描述

返回

:enabled

选取所有可用元素

集合元素

:disabled

选取所有不可用元素

集合元素

:checked

选取所有被选中的元素(单选框,复选框)

集合元素

:disabled

选取所有被选中的选项元素(下拉列表)

集合元素

5、表单选择器

选择器

描述

返回

:input

选取所有的<input>、<textarea>、<select>和<button>元素

集合元素

:text

选取所有的单行文本框

集合元素

:password

选取所有的密码框

集合元素

:radio

选取所有的单选框

集合元素

:checkbox

选取所有的多选框

集合元素

:submit

选取所有的提交按钮

集合元素

:image

选取所有的图像按钮

集合元素

:reset

选取所有的重置按钮

集合元素

:button

选取所有的按钮

集合元素

:file

选取所有的上传域

集合元素

:hidden

选取所有不可见元素

集合元素

6、选择器中的一些注意事项

1)选择器中如果含有“.”、“#”、“(”、“]”等特殊字符,就需要使用转移字符(\\)转义

2)属性选择器中不需要在属性前添加@符号

3)选择器中包含空格为后代选择器,不包含空格为过滤选择器

第三章 jQuery中的DOM操作

1、DOM操作的分类

1)DOM Core

2)HTML-DOM

3)CSS-DOM:用于获取和设置style对象的各种属性

2、jQuery中的DOM操作

1)查找节点

查找元素节点:

查找属性节点:使用attr()方法获取元素的属性

2)创建节点

创建元素节点:当创建单个元素时,要注意闭合标签和使用标准的XHTML格式。

创建文本节点:在创建元素节点时直接将文本内容写进去。

创建属性节点:在创建元素节点时直接将属性内容写进去。

3)插入节点

方法

描述

append()

向每个匹配的元素内部追加内容

appendTo()

将所有匹配的内容追加到指定的元素中,颠倒了append();也可以用于移动元素,首先从文档中删除匹配的元素,然后将该元素插入到指定的元素中

prepend()

向每个匹配的元素内部前置内容

prependTo()

将所有匹配的内容前置到指定的元素中,颠倒了prepend()

after()

在每个匹配的元素之后插入内容

insertAfter()

将所有匹配的内容插入到指定元素的后面,颠倒了after()

before()

在每个匹配的元素之前插入内容

insertBefore()

将所有匹配的内容插入到指定元素的前面,颠倒了before()

4)删除节点

方法

描述

remove()

从DOM中删除所有匹配元素及其所有后代节点,返回一个指向已被删除的节点的引用;可以通过传递参数选择性地删除元素

detach()

与remove()不同的是,所有绑定的事件、附加的数据都会保留下来

empty()

清空元素中的所有后代节点(包括文本节点)

5)复制节点:clone()方法如果没有传递参数则被复制的新元素不具有任何行为,如果参数为true则复制元素的同时复制元素中所绑定的事件。

6)替换节点:replaceWith()方法将所有匹配的元素都替换成指定的HTML或者DOM元素;replaceAll()方法颠倒了replaceWith()方法。

7)包裹元素:

方法

描述

wrap()

将所有匹配的元素进行单独的包裹

wrapAll()

将所有匹配的元素用一个元素来包裹

wrapInner()

将每一个匹配的元素的子内容 (包括文本节点)用其他结构化的标记包裹起来

8)属性操作

获取属性:attr()方法传递一个参数——属性名。

设置属性:attr()方法传递两个参数——属性名和属性值;如果需要同时为同一个元素设置多个属性,则将一个“名/值”形式的对象设置为匹配元素的属性。

删除属性:removeAttr()方法传递一个参数——属性名。

9)样式操作

获取样式:attr()方法传递一个参数——”class”。

设置样式:attr()方法传递两个参数——”class”和类名。

追加样式:addClass()方法传递一个参数——类名;如果给一个元素添加多个class值,则会合并它们的样式;如果有不同的class设定了同一样式属性,则后者覆盖前者。

移除样式:removeClass()方法传递一个参数——类名,则删除这个类名;如果将一个元素的多个类名以空格分隔作为参数,则同时删除这多个类名;如果没有参数,则删除所有的类名。

切换样式:toggleClass()方法控制样式上的重复切换,如果类名存在则删除它,如果类名不存在则添加它

判断是否含有某个样式:hasClass()方法等价于is()方法,传递一个参数——类名。

10)设置和获取HTML、文本和值

html()方法:没有传递参数用于读取某个元素中的HTML内容;传递一个参数用于设置某个元素中的HTML内容;该方法可以用于XHTML文档,但不能用于XML文档。

text()方法:没有传递参数用于读取某个元素中的文本内容;传递一个参数用于设置某个元素中的文本内容;该方法对XHTML文档和XML文档都有效。

val()方法:用于设置和获取元素的值,无论元素是文本框、单选框、多选框还是下拉列表都可以返回元素的值,如果元素为多选,则可以返回一个包含所有选项的值的数组

11)遍历节点

children()方法:用于取得匹配元素的子元素集合,只考虑子元素而不考虑其他后代元素。

next()方法:用于取得匹配元素后面紧邻的同辈元素。

prev()方法:用于取得匹配元素前面紧邻的同辈元素。

siblings()方法;用于取得匹配元素前后所有的同辈元素。

parent()方法:用于取得匹配元素的父元素。

parents()方法:用于取得匹配元素的祖先元素,不同于parent()方法,当它找到第一个父节点时并没有停止查找,而是继续查找,最后返回多个父节点。

closest()方法:用于取得最近的匹配元素,接收一个参数——需要匹配的元素。首先检查当前元素是否匹配,如果匹配直接返回;如果不匹配则向上查找父元素,逐级向上直到找到匹配元素;如果什么都没找到,则返回一个空的jQuery对象。

12)CSS-DOM操作

css()方法用于获取或设置元素的样式

offset()方法用于获取元素在当前视窗的相对偏移,返回一个对象包含两个属性——top和left。

position()方法:获取元素相对于最近一个position属性设置为relative或absolute的祖先节点的相对偏移,返回一个对象包含两个属性——top和left。

scrollTop()方法和scrollLeft()方法分别用于获取元素的滚动条距顶端的距离和距左侧的距离