内容整理至多方面材料,与书籍不一致
知识梳理:
1、dom
获取对象——操作元素——操作样式——DOM操作——遍历DOM
2、补充
过滤方法——事件——动画
js是一种脚本语言,现在主流的技术是Ajax(Asynchronous Javascript And XML,异步 JavaScript 和 XML)
a、复杂的文档对象模型(DOM)
b、不一致的浏览器存在兼容性问题
c、缺乏便捷的开发、调试工具
js库封装了很多预定义的对象和实用函数,如jQuery
- (1)代码简洁
- (2)完美兼容
- (3)强大的选择器
- (4)轻量级
- (5)完善的Ajax
- (6)丰富的插件
……等
类型 | 说明 |
---|---|
jquery.js(开发版) | 完整无压缩,用于测试与学习 |
jquery.min.js(发布版) | 高度压缩,用于实际开发 |
$(){
}
jQuery的选择器完全继承了css的风格,支持CSS1、CSS2、的全部和CSS3的部分选择器
|
|
|
|
|
|
|
(1)$("M~N")可以使用“$(M元素).nextAll(选择器)”代替;
(2)$("M+N")可以使用“$(M元素).next(选择器)”代替;
选择器 | 说明 |
---|---|
$("M N") | 后代选择器,选择M元素内部后代N元素(所有N元素) |
$("M>N") | 子代选择器,选择M元素内部子代N元素(所有第1级N元素) |
$("M~N") | 兄弟选择器,选择M元素后所有的同级N元素 |
$("M+N") | 相邻选择器,选择M元素相邻的下一个同级元素 |
selector指的是选择器,attr指的是属性(attribute),value指的是属性值。
选择器 | 说明 |
---|---|
$("selector[attr]") | 选择包含给定属性的元素 |
$("selector[attr='value']") | 选择给定的属性是某个特定值的元素 |
$("selector[attr != 'value']") | 选择所有含有指定的属性,但属性不等于特定值的元素 |
$("selector[attr *= 'value']") | 选择给定的属性是以包含某些值的元素 |
$("selector[attr ^= 'value']") | 选择给定的属性是以某些值开始的元素(比较少用) |
$("selector[attr $= 'value']") | 选择给定的属性是以某些值结尾的元素(比较少用) |
$("selector[selector1][selector2]…[selectorN]") | 复合属性选择器,需要同时满足多个条件时使用 |
$("selecter:伪类"){
}
伪类选择器 | 说明 |
---|---|
:not(selector) | 选择除了某个选择器之外的所有元素 |
:first或first() | 选择第一次出现的该元素 |
:last或last() | 选择最后一次出现的该元素 |
:odd | 选择索引值为奇数的该元素 |
:even | 选择索引值为偶数的该元素 |
:eq(index) | 选择给定索引值的元素,索引值index是一个整数,从0开始 |
:lt(index) | 选择所有小于索引值的元素,索引值index是一个整数,从0开始 |
:gt(index) | 选择所有大于索引值的元素,索引值index是一个整数,从0开始 |
:header | 选择h1~h6的标题元素 |
:animated | 选择所有正在执行动画效果的元素 |
:root | 选择页面的根元素 |
:target | 选择当前活动的目标元素(锚点) |
选择器 | 说明 |
---|---|
:first-child | 若排在第一位的是该子元素,那么选择该子元素 |
:last-child | 若排在第一位的是该子元素,那么选择该子元素 |
:nth-child(n) | n的值为“整数|odd|even” |
:only-child | 若该父元素只有一个子元素,那么选择该子元素 |
选择器 | 说明 |
---|---|
:first-of-type | 选择第一次出现的该子元素 |
:last-of-type | 选择最后一次出现的子该元素 |
:nth-of-type(n) | n的值可以是“整数|odd|even” |
:only-of-type | 匹配父元素中特定类型的唯一子元素(但是父元素可以不同的元素类型) |
选择器 | 说明 |
---|---|
:hidden | 选取所有不可见元素 |
:visible | 选取所有可见元素,与:hidden相反 |
选择器 | 说明 |
---|---|
:contains(text) | 选择文本节点中包含给定文本内容的元素 |
:has(selector) | 选择含有选择器所匹配元素的元素 |
:empty | 选择所有不包含子元素或者不包含文本的元素 |
:parent | 选择含有子元素或者文本的元素(跟:empty相反) |
选择器 | 说明 |
---|---|
:input | 选择所有input元素 |
:button | 选择所有普通按钮,即type="button"的input元素 |
:submit | 选择所有提交按钮,即type="submit"的input元素 |
:reset | 选择所有重置按钮,即type="reset"的input元素 |
:text | 选择所有单行文本框 |
:textarea | 选择所有多行文本框 |
:password | 选择所有密码文本框 |
:radio | 选择所有单选按钮 |
:checkbox | 选择所有复选框 |
:image | 选择所有图像域 |
:hidden | 选择所有隐藏域 |
:file | 选择所有文件域 |
选择器 | 说明 |
---|---|
:checked | 选择所有被选中的表单元素,一般用于radio和checkbox |
option:selected | 选择所有被选中的option元素 |
:enabled | 选择所有可用元素,一般用于input、select和textarea |
:disabled | 选择所有不可用元素,一般用于input、select和textarea |
:read-only | 选择所有只读元素,一般用于input和textarea |
:focus | 选择获得焦点的元素,常用于input和textarea |
|
|
|
|
|
|
|
|
|
HTML代码 | html()返回值 | text()返回值 |
---|---|---|
绿叶学习网 |
"绿叶学习网" | "绿叶学习网" |
绿叶学习网 |
"绿叶学习网" | "绿叶学习网" |
"" | ""(空字符串) |
|
|
|
|
|
|
|
一个元素可以有多个类名,用空格隔开
class="name1 name2"
|
|
|
|
|
|
既能设置也能获取
方法 | 宽度范围 |
---|---|
width() | width |
innerWidth() | width + padding |
outerWidth() | width + padding + border |
方法 | 高度范围 |
---|---|
height() | height |
innerHeight () | height + padding |
outerHeight () | height + padding + border |
“获取”或“设置”元素相对于“当前文档”(也就是浏览器窗口)的偏移距离。
$().offset()返回的是一个坐标对象,该对象有2个属性:top和left。
$().offset().top表示获取元素相对于当前文档“顶部”的距离。
$().offset().left表示获取元素相对于当前文档“左部”的距离。
这两种方法返回的都是一个数字(不带单位)。
获取”或“设置”当前元素相对于“其被定位的祖辈元素”的偏移距离。
$().position()返回的是一个坐标对象,该对象有2个属性:top和left。
$().position().top表示元素相对于被定位的祖辈元素的顶部的垂直距离。
$().position().left表示元素相对于被定位的祖辈元素的左部的水平距离。
这两种方法返回的都是一个数字(不带单位)。
|
说明:
scrollLeft()方法的用法跟scrollTop()方法一样。
scrollTop()和scrollLeft()获取的值是一个数字(不带单位),这个跟height()、width()是一样的
- jq→dom
var domObj = $("$obj")[0];
- dom→jq
var domObj = document.getElementById("div"); var $obj = $(domObj);
$(html)中的html指的是“HTML标签字符串”,根据传入的HTML标记字符串,创建一个DOM对象
|
内末:append()和appendTo();内始:prepend()和prependTo();
外末:after()和insertAfter();外始:before()和insertBefore();
append
$(A).append(B)
说明:
$(A).append(B)表示在A内部的“末尾”插入B。
appendTo
$(A).appendTo(B)
说明:
$(A).appendTo(B)表示将A插入B内部的“末尾”。
prepend
$(A).prepend(B)
说明:
$(A).prepend(B)表示在A内部的“开始”插入B。
prependTo
$(A).prependTo(B)
说明:
$(A).prependTo(B)表示将A插入B内部的“开始”。
before
$(A).before(B)
说明:
$(A).before(B)表示在A外部“之前”插入B。
insertBefore
$(A).insertBefore(B)
说明:
$(A).insertBefore(B)表示将A插入B外部“之前”。
after
$(A).after(B)
说明:
$(A).after(B)表示在A外部“之后”插入B。
insertAfter
$(A).insertAfter(B)
说明:
$(A).insertAfter(B)表示在A外部“之后”插入B。
使用remove()方法,不仅元素会被删除,所绑定的事件都会被删除。
使用detach()方法,只有元素被删除,所绑定的事件并不会删除。
|
|
清空元素内部的所有节点。
|
|
说明:
其中clone()方法有一个布尔参数,默认值为false。
$(A).clone()表示仅仅将A节点复制,但不复制A节点所绑定的事件。
$(A).clone(true)表示将A节点复制,并且复制A节点所绑定的事件。
replaceWith
|
$(A).replaceWith(B)表示用B来替换A。
replaceAll
|
$(A).replaceAll(B)表示用A来替换B。
|
$(A).wrap(B)表示b包裹a。
|
$(A).wrapAll(B)表示b包裹a。
|
$(A).wrapAll(B)表示a包裹b。
|
$(A).wrapInner(B)表示将A元素“所有内部子元素”使用B元素包裹起来(不包括A本身)。
jquery对象的遍历
index表示当前循环到第几个索引
element - 当前的元素(也可使用 "this" 选择器)
$(selector).each(function(index,element))
注意:
$.each()函数不同于对象的$().each()方法,它是一个全局函数,可以遍历任意集合,但不操作jQuery对象
$.each(data,function(index,comment))
函数指代码片段,当函数由对象调用时叫“方法”,当函数由$调用时叫全局函数
1 2 3 |
|
1 2 3 |
|
页面所有DOM元素(不包括图片等外部文件)加载完成就可以执行,此时我们就可以操作DOM。
在页面所有DOM元素(包括图片等外部文件)加载完成之后才执行,此时我们才可以操作DOM
window.onload方法只能调用1次,如果多次调用,则执行最后一个window.onload方法中的代码
鼠标事件 | 说明 |
---|---|
click | 鼠标单击事件 |
dbclick | 双击事件 |
mouseover | 移入事件 |
mouseout | 移出事件 |
mousemove | 移动事件 |
mousedown | 按下事件 |
mouseup | 松开事件 |
顺序:keydown→keypress→keyup
某个键被按下到松开“整个过程”中触发的事件
keypress事件只在按下键盘的任一“字符键”(如A~Z、数字键)时触发
某个键被按下之后松开的一瞬间触发的事件
onfocus表示获取焦点触发的事件,onblur表示失去焦点触发的事件。
具有获得焦点和失去焦点事件的元素有3个:
- (1)单行文本框text;
- (2)多行文本框textarea;
- (3)下拉列表select;
具有获得onchange事件的元素有3个:
- (1)单行文本框text;
- (2)多行文本框textarea;
- (3)下拉列表select;
从鼠标按键被按下,到鼠标开始移动并选中内容的过程。这个过程并不包括鼠标键的放开
具有获得onselect事件的元素有3个:
- (1)单行文本框text;
- (2)多行文本框textarea;
通过submit() 方法触发 submit 事件,即提交表单
$(selector).submit()
当表单提交时触发函数
$(selector).submit(function)
当滚动条位置发生改变时触发的事件
|
为元素绑定某个事件来完成某些操作
|
解除绑定的某一指定的事件或者所有事件
|
参数fn1表示“鼠标移入”时触发的事件处理函数,参数fn2表示“鼠标移出”时触发的事件处理函数。
|
“只触发一次”的处理函数,type表示事件类型,fn表示事件的处理函数
|
trigger() 触发事件和默认行为(比如表单提交)。
triggerHandler()触发事件但不触发默认行为(例如模拟focus时会执行方法,但浏览器不会获取焦点)
$(selector).trigger(event,eventObj,param1,param2,...)
参数 | 描述 |
---|---|
event | 必需。规定指定元素上要触发的事件。 可以是自定义事件,或者任何标准事件。 |
param1,param2,... | 可选。传递到事件处理程序的额外参数。 额外的参数对自定义事件特别有用。 |
通过改变height、width、opacity来实现动画的显示与隐藏
使用hide()方法来实现元素的隐藏效果,使用show()方法来实现元素的显示效果
$().hide()
$().show()
说明:
hide()方法就是把所选元素的display属性设置为none。
show()方法就是把所选元素的display属性还原为隐藏之前的显示状态(block、inline或者inline-block等)。
$().hide(speed,callback)
$(),show(speed,callback)
说明:
参数speed为必选参数,表示动画执行的速度,单位是毫秒;
参数callback为可选参数(可以省略)
切换
$().toggle()
//简单的toggle()
$().toggle(speed , callback);
//动画的toggle()
说明:
参数speed表示动画执行的速度,单位是毫秒;
参数callback为可选参数(可以省略),表示动画执行完成之后的“回调函数”。
通过opacity来实现动画的显示与隐藏
使用fadeIn()方法来实现元素的淡入效果,使用fadeOut()方法来实现元素的淡出效果
$().fadeIn(speed , callback)
$().fadeOut(speed , callback)
说明:
speed为可选参数,表示动画执行的速度,单位为毫秒,默认为200毫秒。如果speed参数省略,则采用默认速度。
callback为可选参数,表示动画执行完成之后的回调函数。
通过不透明度变化来切换匹配元素的“显示状态”
fadeTo()
$().fadeTo(speed , opacity , callback)
说明:
speed为可选参数,表示动画执行的速度,单位为毫秒,默认为500毫秒。如果speed参数省略,则采用默认速度。
opacity为必选参数,表示元素指定的透明度,取值范围为0.0~1.0。
callback为可选参数,表示动画执行完成之后的回调函数。
$().slideDown(speed , callback)
$().slideUp(speed , callback)
说明:
speed为可选参数,表示动画执行的速度,单位为毫秒,默认值为200毫秒。如果参数省略,则采用默认速度。
callback为可选参数,表示动画执行完成之后的回调函数。
slideToggle(speed , callback)
说明:
speed为可选参数,表示动画执行的速度,单位为毫秒,默认值为200毫秒。如果参数省略,则采用默认速度。
callback为可选参数,表示动画执行完成之后的回调函数。
$(selector).animate({params},speed,callback);
必需的 params 参数定义形成动画的 CSS 属性。
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是动画完成后所执行的函数名称。
|
说明:
队列动画,就是按照animate()方法调用的先后顺序来实现的
|
参数clearQueue表示是否要清空“未执行”的“动画队列”
参数gotoEnd,表示是否直接将正在执行的动画跳转到末状态
参数取值 | 说明 |
---|---|
stop() | 等价于stop(false,false),仅仅停止“当前执行”这段动画,后面的动画还可以继续执行 |
stop(true) | 等价于stop(true,false),停止所有动画,包括当前执行的动画 |
stop(true,true) | 停止所有动画,但是允许执行当前动画 |
stop(false,true) | 停止“当前执行”这段动画,然后调到最后一个动画,并且执行最后一个动画 |
|
说明:
参数speed,表示动画的速度,单位为毫秒。
如果元素不处于动画状态,则添加新的动画;如果元素处于动画状态,则不添加新的动画
|
$().过滤方法(){
}
方法 | 说明 |
---|---|
hasClass() | 判断所选元素是否含有某个类,返回值为true或false |
eq(n) | 选择元素集合中指定下标元素,下标从0开始(选择器作用) |
is() | 判断所选元素是否有符合某个条件的元素,返回值为true或false |
not() | 选择元素集合中不符合条件的元素(选择器作用) |
filter() | 使用“自定义表达式”来选择符合条件的元素(功能多) |
has() | 使用“自定义表达式”来选择符合条件的元素(功能少) |
查找当前元素的“父元素”,元素只有一个父元素
查找当前元素的“祖先元素”,祖先元素可能是多个
查找当前元素的子元素
查找所有后代元素
查找某个元素的前一个“相邻”的兄弟元素
查找所选元素前面“所有”同级的兄弟元素
查找所选元素之前和参数之后的兄弟元素
查找某个元素的后一个“相邻”的兄弟元素
查找所选元素后面“所有”同级的兄弟元素
查找所选元素之后和参数之前的兄弟元素
选择满足select要求的兄弟元素
$(" ").siblings("select")