jquery中事件和DOM操作

在JavaScript中,常用的基础事件有鼠标事件、键盘事件、window事件、表单事件等。
事件绑定和处理函数的语法格式如下:
事件名=“函数名()”;
(1)载入事件
所谓载入事件,是window事件的一种,window事件表示当用户执行某些会影响浏览器的操作时,而触发的事件。在jQuery中,常用的window事件有文档载入事件,它对应的方法是ready().
(2)鼠标事件
鼠标事件,顾名思义就是当用户在文档上移动或单击鼠标而产生的事件。
常用的鼠标事件的方法如下:

方法描述执行时机
click()触发或将函数绑定到指定元素的click事件单机鼠标时
mouseover()触发或将函数绑定到指定元素的mouseover事件鼠标指针移过时
mouseout()触发或将函数绑定到指定元素的mouseover事件鼠标指针移过时
mouseenter()触发或将函数绑定到指定元素mouseenter事件鼠标指针进入时
mouseleave()触发或将函数绑定到指定元素的mouseleave事件鼠标指针离开时

Mouseenter()和mouseover()用法一样,都是鼠标指针移页面元素上时触发事件,这两个方法的区别如下:

方法相同点不同点
mouseover()/mouseenter()鼠标进入被选元素时会触发鼠标在其被选元素的子元素上来回进入时:触发mouseover不触发mouseenter
mouseout()/mouseleave()鼠标离开被选元素时会触发鼠标在其被选元素的子元素上来回离开时:触发mouseout不触发mouseleave

(3)键盘事件
键盘事件是指当键盘聚焦到Web浏览器时,用户每次按下或者释放键盘上的按键都会产生事件。常用的键盘事件有keydown、keyup和keypress。
常用键盘事件的方法如下:

方法描述执行时机
keydown()触发或将函数绑定到指定元素keydown事件按下键盘时
keyup()触发或将函数绑定到指定元素的keyup事件释放按键时
keypress()触发或将函数绑定到指定元素的keypress事件产生可打印的字符时

(4)浏览器事件
在浏览网页时,经常会调整浏览器窗口的大小,这些操作都是通过jQuery中的resize()方法触发resize事件,进而处理相关函数来完成的一些特效。resize()语法如下:
$(selector).resize();

4.1.2 绑定事件与移除事件
(1)绑定事件
在jQuery中,如果需要为匹配的元素同时绑定一个或多个事件,则可以使用bind()方法,其语法格式如下:
bind(type,[data],fn)
bind()方法中三个参数的含义:
*type:事件类型(主要包括click、mouseover、mouseout等基础事件,还可以是自定义事件)
*[data] :可选参数(作为event.data属性值传递给事件对象的额外数据对象,该参数不是必需的)
*fn :处理函数(用来绑定处理函数)
1)绑定单个事件
2)同时绑定多个事件
(2)移除事件
在jQuery中,提供了移除事件的方法unbind()。在绑定事件中,可以为匹配元素绑定一个或多个事件,那么同样可以为匹配的元素移除有个或多个事件。具体语法格式如下:
unbind([type],[fn])
Unbind()方法有两个参数,这两个参数不是必需的。当unbind()不带参数时,表示移除绑定的全部事件。
其中:
*[type] :事件类型(主要包括click、mouseover、mouseout等基础事件,还可以是自定义事件)
*[fn] :处理函数(用来解除绑定的处理函数)
4.1.3复合事件
(1)hover()方法
在jQuery中,hover() 用于模拟鼠标指针移入和移出事件。当鼠标指针移至元素上时,会触发指定的第一个函数(enter);当鼠标指针移出这个元素时,会触发指定的第二个函数(leave)。其语法格式如下:
Hover(enter,leave);
(2)toggle()方法
在jQuery中,toggle()分为带参数的方法和不带参数的方法;带参数的方法用于模拟鼠标连续单击事件。第一次单击元素,触发指定的第一个函数(fnl);再次单击同一个元素,则触发指定的第二个函数(fn2);
如果有更多函数,则依次触发,知道最后一个。
Toggle()方法的语法格式如下:
Toggle(fnl1,fn2,…,fnN);

4.2 使用jQuery改变页面内容呈现
4.2.1 DOM 操作
1.DOM操作分类
使用JavaScript操作DOM分为三类–DOM Core(核心)、HTML-DOM和CSS-DOM。使用jQuery操作DOM同样分为三类。
JavaScript中的getElementById()等方法都是DOM Core的组成部分。
在JavaScript中,CSS-DOM技术的主要作用是获取和设置style对象的各种属性。
2. jQuery中的DOM 操作
jQuery中国的DOM操作主要分为样式操作、文本和value属性值操作、节点操作,节点操作又包含属性操作、节点遍历和CSS-DOM操作。其中最主要的部分是节点操作和节点遍历。
4.2.2 样式操作
1.设置和获取样式值
回顾一下使用css()方法为指定的元素设置样式值,语法格式:

$(selector).css(name,value)   //设置单个属性
或者
$(selector).css({name:valuek,name:value,name:value...})//同时设置多个属性
获取CSS属性的值 语法格式:
$(selector).css(name)  //获取属性

2.追加样式和移除样式
(1)追加样式
除了可以使用css()方法为元素添加样式外,还可以使用addClass()方法为元素追加类样式。其语法格式:

$(selector).addClass(class)
其中,class为类样式的名称,也可以增加多个类样式,各个类样式之间用空格隔开。
(2)移除样式
在jQuery中,与addClass()方法相对应的方法是移除样式方法removeClass(),其语法格式:
$(selector).removeClass(class)
或者
$(selector).removeClass(class1 class2 ...classN)
  1. 切换样式
    在jQuery中,使用toggleClass()方法可以切换不同元素的类样式,其语法格式如下:
$(selector).toggleClass(class)

其中,参数class为类样式的名称,其功能是当元素中含有名称为class的CSS类样式时,删除该类样式,否则增加一个该名称的类样式。

  1. 判断是否含指定的样式
    在jQuery中,提供了hasClass()方法来判断,其语法如下:
$(selector).hasClass(class);

参数class是类名,该名称是必选的,规定在指定元素中查找的类名,返回值为布尔类型。

4.2.3 内容操作
1.HTML代码操作
在jQuery中,可以使用html()方法对HTML代码进操作,,该方法类似于传统JavaScript中的innerHTML,通常用于动态地新增页面内容。
语法格式如下:

Html([content])

其中,comtent :可选,规定被选元素的新内容,该参数可以包含HTML标签;无标签时,表示获取被选元素 的文本内容
2. 标签内容操作
在jQuery中,可以使用text()方法获取或设置元素的文本内容,不含HTML标签。其语法格式:

text([content])

其中,content:可选,规定被选元素的新文本内容,注:特殊字符会被编码;无参数时,表示获取被选元素的文本内容。

Html()方法和text()方法的区别,如下:

语法格式参数说明功能描述
html()无参数用于获取第一个匹配元素的HTML内容或文本内容
html(content)content参数为元素的HTML内容用于设置所有匹配元素的HTML内容或文本内容
text()无参数用于获取所有匹配元素的文本内容
text(content)content参数为元素的文本内容用于设置所有匹配元素的文本内容

语法格式 参数说明 功能描述
html() 无参数 用于获取第一个匹配元素的HTML内容或文本内容
html(content) content参数为元素的HTML内容 用于设置所有匹配元素的HTML内容或文本内容
text() 无参数 用于获取所有匹配元素的文本内容
text(content) content参数为元素的文本内容 用于设置所有匹配元素的文本内容
此外,还需要注意的是,html()方法仅支持(X)HTML文档,不能用于XML文档,而text()方法既支持HTML文档,也支持XML文档。
3. 属性值操作
在jQuery中,提供了获取元素value属性值的方法val().该方法多用于操作表单的元素。
语法格式如下:
val([value])
其中,value:可选。规定被选元素的新内容;无参数时,返回值为第一个被选元素的value属性的值
4.2.4 节点与属性操作
1.在jQuery中,节点操作主要分为查找、创建、插入、删除、替换和复制六中操作方式。
(1)查找节点
在jQuery中,要查找某元素,可以使用jQuery选择器。
(2)创建节点
$():该函数用于将匹配到的DOM元素转换为jQuery对象,语法格式:

$(selector)
或者
$(element)
或者
$(html)

$()的参数说明:

参数描述
selector选择器。使用jquery选择器匹配元素
elementDOM元素。以DOM元素来创建jquery对象
htmlHTML代码。使用HTML字符串创建jquery对象

(3)插入节点
从插入方式上主要分为 两大类:内部插入节点和外部插入节点
其对应的具体方法如表:
内部插入:

语法功能
append(content)$(A).append(B)表示将B追加到A中
appendTo(content)$(A).appendTo(B)表示把A追加到B中
prepend(content)$(A).prepend(B)表示将B前置插入到A中
prependTo(content)$(A).prependTo(B)表示将A前置插入到B中

外部插入:

语法功能
after(content)$(A.after(B))表示将B插入到A之后
insertAfter(content)$(A).insertAfter(B)表示将A插入到B之后
before(content)$(A).before(B)表示将B插入至A之前
insertBefore(content)$(A).insertBefore(B)表示将A插入到B之前

(4)删除节点
在jQuery中,提供了remove()方法、detach()和empty()三种删除节点的方法,其中detach()的使用频率不太高,了解即可。
首先介绍remove()方法 语法格式如下:

$(selector).remove([expr])

其中参数expr为可选项,如果接收参数,则该参数为删选元素的jQuery表达式,通过该表达式获取指定元素并进行删除。

其次是empty()方法。严格意义上讲,empty()方法不是删除节点,而是清空节点,它能清空元素中的所有后代节点。其语法格式:

$(selector).empty()

(5)替换节点
在jQuery中,如果要替换某个节点,可以使用replaceWith()方法和replaceAll()方法。
replaceWith()方法的作用是将所有匹配的元素都替换成指定的HTML或者DOM元素。
(6)复制节点
在jQuery中,若要对节点进行复制,可以使用clone()方法。该方法能够生成被选元素的副本,包括子节点、文本和属性。其语法格式:

$(selector).clone([includeEvents])

其中,参数includeEvents为可选值,取布尔值ture或false,规定是否复制元素的所有元素事件处理,为ture时复制事件处理,为false时不复制。

  1. 属性操作
    在jQuery中。属性操作的方法有两种,即获取与设置元素属性的 attr()方法和删除元素属性的removeAttr()。
    (1)获取和设置元素属性
    在jQuery中,可以使用attr()方法来获取与设置元素属性,使用removeAttr()方法删除元素属性。
    首先介绍attr()的使用方法,其语法格式如下:
$(selector).attr([name])  //获取属性值
或者
$(selector).attr({[name1:value1],[name2:value2],...,[nameN:valueN]})  //设置多个属性值

(2)删除元素属性
用法与removeAttr()方法非常相似,其语法格式如下:

$(seletor).removeAttr(name)

其中,参数为元素属性的名称

4.2.5 节点遍历
在jQuery中 主要 提供了遍历子元素、遍历同辈元素、遍历前辈元素和一些特别的遍历方法,即children()、next()、prev()、siblings()、parent()和parents()等。

  1. 遍历子元素
    在jQuery中,遍历子元素的方法只有一个,即children()方法。其语法格式如下:
$(selector).children([expr])

参数expr为可选,是用于过滤子元素的表达式
2. 遍历同辈元素
在jQuery中,提供了三种遍历同辈元素的方法,即next()、prev()和siblings(),它们分别用于获取匹配元素紧邻其后、紧邻其前和位于该元素前与后的所有同辈元素。
遍历同辈元素的方法说明,如下:

语法功能
next([expr])用于获取紧邻匹配元素之后的元素$(“li:eq(1)”).next().addClass(“orange”);
prev([expr])用于获取紧邻匹配元素之前 的 元 素$(“li:eq(1)”).prev().addClass(“orange”);
slibings([expr])用于获取位于匹配元素前面和后面的所有同辈元素$(“li:eq(1)”).siblings().addClass(“orange”);
  1. 遍历前辈元素
    在jQuery中,用于遍历前辈元素 的方法主要有parent()和parents()。前者用于获取当前匹配元素集合中每个匹配元素的父级元素,后者用于获取当前匹配元素集合中每个匹配元素的祖先元素,它们的语法分别是:
$(selector).parent([selector])
$(selector).parents([selector])

两者的参数都是可选的,表示被匹配元素的选择器表达式。
Parent()和parents()的参数说明:
parent():获取元素的父级元素
parents():获取元素的祖先元素

4. 其他遍历方法
除了以上介绍的节点遍历方法外,jQuery中还有许多遍历方法,如each()、end()、find()、eq()、first()、last()等。主要 介绍each()和end()的应用。
(1)each()方法
each()规定为每个匹配元素运行的函数,语法如下所示:

$(selector).each(function(index,element))

其中,参数index表示选择器的index位置,element表示当前的元素,当返回值为false时可用于及早停止循环。
(2)end()方法
end()方法结束当前链条中最近的删选操作,并将匹配元素集还原之前的状态,语法格式如下:

.end();

CSS-DOM操作
CSS-DOM相关操作方法说明,如下表:

语法功能
css()设置或返回匹配元素的样式属性
height([value])设置或返回匹配元素的高度
width([value])设置或返回匹配元素的宽度
offset([value])设置或返回以像素为单位的top和left坐标 仅对可见元素有效
offsetParent()返回最近的已定位祖先元素。定位元素指的是元素的CSSposition值被设置为relative、absolute或fixed的元素
posittion()返回第一个匹配元素相对于父元素的位置
scrollLeft([position])参数可选。设置活返回匹配元素相对滚动条左侧的偏移
scrollTop([position])参数可选。设置或返回匹配元素相对滚动条项
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值