You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
第一种方式
var $div = $('div') //jQuery对象
var div = $div[0] //转化成DOM对象
div.style.color = 'red' //操作dom对象的属性
第二种方式
var $div = $('div') //jQuery对象
var div = $div.get(0) //通过get方法,转化成DOM对象
div.style.color = 'red' //操作dom对象的属性
(2)DOM => jQuery
var div = document.getElementsByTagName('div'); //dom对象
var $div = $(div); //jQuery对象
var $first = $div.first(); //找到第一个div元素
$first.css('color', 'red'); //给第一个元素设置颜色
var $body = $('body');
$body.on('click', function () {
//通过jQuery生成div元素节点
var div = $("<div class='right'><div class='aaron'>动态创建DIV元素节点</div></div>")
$body.append(div)
})
前言
本篇博文是记录jQuery的基础知识,根据慕课网的教程整理而成。还有,为了优化大家的阅读体验,强烈建议先安装Chrome浏览器的插件——GayHub。下载安装地址
jQuery样式篇
第一个例子
不多说,这是我们踏入编程界输出的第一句话,下面贴上代码(默认导入jQuery源文件):
【代码解析】
$(document).ready 的作用是等页面的文档(document)中的节点都加载完毕后,再执行后续的代码,因为我们在执行代码的时候,可能会依赖页面的某一个元素,我们要确保这个元素真正的的被加载完毕后才能正确的使用。
jQuery对象与DOM对象
jQuery对象与DOM对象是不一样的,大概就是:jQuery是一个类数组对象,而DOM对象就是一个单独的DOM元素。具体有以下区别:
(1)通过jQuery方法包装后的对象,是一个类数组对象。它与DOM对象完全不同,唯一相似的是它们都能操作DOM。
(2)通过jQuery处理DOM的操作,可以让开发者更专注业务逻辑的开发,而不需要我们具体知道哪个DOM节点有那些方法,也不需要关心不同浏览器的兼容性问题,我们通过jQuery提供的API进行开发,代码也会更加精短。
jQuery对象与DOM对象之间的转换
(1)jQuery => DOM
(2)DOM => jQuery
jQuery选择器
(1)ID选择器:
$( "#id" )
(2)类选择器:
$( ".class" )
(3)元素选择器:
$( "element" )
(4)全选择器:
$( "*" )
(5)层级选择器
(6)基本筛选选择器
(7)内容筛选选择器
(8)可见性筛选选择器
(9)属性筛选选择器
![](https://camo.githubusercontent.com/a98b18bf8110f6b485a1a1ed52c64f49b501f25164b0d6db18dd3185dd46b509/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3537643635343230303030316334363530373336303536302e6a7067)
(10)子元素筛选选择器
![](https://camo.githubusercontent.com/41fe1ed8f3d357e6f8ac5bbfdbc0ad818cd802db04fa7b8a25c72aa4e3375da8/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3535393130356461303030313330313130353936303333312e6a7067)
(11)表单元素选择器
![](https://camo.githubusercontent.com/cd0a34fc5e9df3f45a74169fd752b148fb7e2d2366864fc22a44b248e2287e0b/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3535393230343064303030316638656230343934303434312e6a7067)
(12)表单对象属性筛选选择器
![](https://camo.githubusercontent.com/826faee0aa3b61c86a73472a1f9175d533ffed36037637f53fff4a7e220c8f61/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3535393230633266303030313139386230343934303230312e6a7067)
(13)特殊选择器this
jQuery中attr()和removeAttr()
(1)jQuery中用attr()方法来获取和设置元素属性,attr是attribute(属性)的缩写,在jQuery DOM操作中会经常用到attr()
(2)removeAttr( attributeName ) : 为匹配的元素集合中的每个元素中移除一个属性(attribute)
jQuery中html()和text()
(1)html()方法:获取集合中第一个匹配元素的HTML内容 或 设置每一个匹配元素的html内容,具体有3种用法
(2)text()方法:得到匹配元素集合中每个元素的文本内容结合,包括他们的后代,或设置匹配元素集合中每个元素的文本内容为指定的文本内容,具体有3种用法:
(3)html()和text()的异同
jQuery中的val()方法
jQuery中有一个.val()方法主要是用于处理表单元素的值,比如 input, select 和 textarea:
jQuery中的addClass()方法
jQuery增加了一个.addClass()方法,用于动态增加class类名:
jQuery中的removeClass()方法
jQuery通过.addClass()方法可以很便捷的增加样式。如果需要样式之间的切换,同样jQuery提供了一个很方便的.removeClass(),它的作用是从匹配的元素中删除全部或者指定的class:
jQuery中的toggleClass()方法
jQuery通过toggleClass方法动态添加删除Class,一次执行相当于addClass,再次执行相当于removeClass:
jQuery中的css()方法
在jQuery中我们要动态的修改style属性我们只要使用css()方法就可以实现了:
jQuery DOM篇
JavaScript创建DOM
(1)创建流程如下
(2)涉及到一些方法
(3)存在的问题
jQuery节点创建与属性的处理
同时创建元素节点、文本节点、属性节点
DOM内部插入append()与appendTo()
(1)append()前面是被插入的对象,后面是要在对象内插入的元素内容;
![](https://camo.githubusercontent.com/68711edd0de9b22fc4b38dd89db7ed8b833c3a7dd0c90432e2c851cb9653e334/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3536636331326638303030313762343130343438303134362e6a7067)
(2)appendTo()前面是要插入的元素内容,而后面是被插入的对象
DOM外部插入after()与before()
before与after都是用来对相对选中元素外部增加相邻的兄弟节点。
![](https://camo.githubusercontent.com/75584d4009d5a69bdbfcb5d766632a17ed18649da3d46bbcdfb07a42b74b8d30/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3537343831623662303030313865333430353231303139372e6a7067)
DOM内部插入prepend()与prependTo()
在元素内部进行操作的方法,除了在被选元素的结尾(仍然在内部)通过append与appendTo插入指定内容外,相应的还可以在被选元素之前插入,jQuery提供的方法是prepend与prependTo
![](https://camo.githubusercontent.com/b0b24bb0e53c672c08e19516a7b16591b11e606b03f2eed19e061c3d7f1067da/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3537343831633339303030313363366530353030303139332e6a7067)
这里总结下内部操作四个方法的区别:
DOM外部插入insertAfter()与insertBefore()
与内部插入处理一样,jQuery由于内容目标的位置不同,然增加了2个新的方法insertAfter与insertBefore
![](https://camo.githubusercontent.com/32371d22c656aaaedefc7753dbedc3a39420741aa7f269cf6fbda39bb857bb2f/687474703a2f2f696d672e6d756b6577616e672e636f6d2f3537343831643233303030316230663330353137303234312e6a7067)
DOM节点删除之empty()的基本用法
(1)empty 顾名思义,清空方法,但是与删除又有点不一样,因为它只移除了 指定元素中的所有子节点。
(2)如果我们通过empty方法移除里面div的所有元素,它只是清空内部的html代码,但是标记仍然留在DOM中。
DOM节点删除之remove()的有参用法和无参用法
(1)remove与empty一样,都是移除元素的方法,但是remove会将元素自身移除,同时也会移除元素内部的一切,包括绑定的事件及与该元素相关的jQuery数据。
(2)为了防止"内存泄漏",所以前端开发者一定要注意,绑了多少事件,不用的时候一定要记得销毁
(3)通过remove方法移除div及其内部所有元素,remove内部会自动操作事件销毁方法,所以使用使用起来非常简单
DOM节点删除之empty和remove区别
(1)要用到移除指定元素的时候,jQuery提供了empty()与remove([expr])二个方法,两个都是删除元素,但是两者还是有区别
(2)empty方法
(3)remove方法
DOM节点删除之保留数据的删除操作detach()
(1)如果我们希望临时删除页面上的节点,但是又不希望节点上的数据与事件丢失,并且能在下一个时间段让这个删除的节点显示到页面,这时候就可以使用detach方法来处理
(2)detach从字面上就很容易理解。让一个web元素托管。即从当前页面中移除该元素,但保留这个元素的内存模型对象。
DOM节点删除之detach()和remove()区别
(1)remove:移除节点
(2)detach:移除节点
DOM拷贝clone()
(1).clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素、匹配元素的下级元素、文字节点。
(2)clone方法比较简单就是克隆节点,但是需要注意,如果节点有事件或者数据之类的其他处理,我们需要通过clone(ture)传递一个布尔值ture用来指定,这样不仅仅只是克隆单纯的节点结构,还要把附带的事件与数据给一并克隆了
(3)细节
DOM替换replaceWith()和replaceAll()
(1).replaceWith( newContent ):用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合
(2).replaceAll( target ) :用集合的匹配元素替换每个目标元素。.replaceAll()和.replaceWith()功能类似,但是目标和源相反,用上述的HTML结构,我们用replaceAll处理
$('<a style="color:red">替换第二段的内容</a>').replaceAll('p:eq(1)')
(3)总结
DOM包裹wrap()方法
(1).wrap( wrappingElement ):在集合中匹配的每个元素周围包裹一个HTML结构
(1).wrap( function ) :一个回调函数,返回用于包裹匹配元素的 HTML 内容或 jQuery 对象
DOM包裹unwrap()方法
(1)jQuery提供了一个unwrap()方法 ,作用与wrap方法是相反的。将匹配元素集合的父级元素删除,保留自身(和兄弟元素,如果存在)在原来的位置。
p元素
p元素
DOM包裹wrapAll()方法
(1)wrap是针对单个dom元素处理,如果要将集合中的元素用其他元素包裹起来,也就是给他们增加一个父元素,针对这样的处理,JQuery提供了一个wrapAll方法
(2).wrapAll( wrappingElement ):给集合中匹配的元素增加一个外面包裹HTML结构
(3).wrapAll( function ) :一个回调函数,返回用于包裹匹配元素的 HTML 内容或 jQuery 对象,通过回调的方式可以单独处理每一个元素
DOM包裹wrapInner()方法
(1).wrapInner( wrappingElement ):给集合中匹配的元素的内部,增加包裹的HTML结构
(2).wrapInner( function ) :允许我们用一个callback函数做参数,每次遇到匹配元素时,该函数被执行,返回一个DOM元素,jQuery对象,或者HTML片段,用来包住匹配元素的内容
jQuery遍历之children()方法
(1)jQuery是一个合集对象,如果想快速查找合集里面的第一级子元素,此时可以用children()方法。这里需要注意:.children(selector) 方法是返回匹配元素集合中每个元素的所有子元素(仅儿子辈,这里可以理解为就是父亲-儿子的关系)
jQuery遍历之find()方法
(1)jQuery是一个合集对象,如果想快速查找DOM树中的这些元素的后代元素,此时可以用find()方法,这也是开发使用频率很高的方法。这里要注意 children与find方法的区别,children是父子关系查找,find是后代关系(包含父子关系)
(2).find()方法要注意的知识点:
(3).find()和.children()方法是相似的
jQuery遍历之parent()方法
(1)jQuery是一个合集对象,如果想快速查找合集里面的每一个元素的父元素(这里可以理解为就是父亲-儿子的关系),此时可以用parent()方法,因为是父元素,这个方法只会向上查找一级
jQuery遍历之parents()方法
(1)jQuery是一个合集对象,如果想快速查找合集里面的每一个元素的所有祖辈元素,此时可以用parents()方法,其实也类似find与children的区别,parent只会查找一级,parents则会往上一直查到查找到祖先节点
(2)注意事项:
jQuery遍历之closest()方法
(1)closest()方法接受一个匹配元素的选择器字符串,从元素本身开始,在DOM 树上逐级向上级元素匹配,并返回最先匹配的祖先元素。例如:在div元素中,往上查找所有的li元素,可以这样表达
$("div").closet("li')
(2)注意事项:在使用的时候需要特别注意下,粗看.parents()和.closest()是有点相似的,都是往上遍历祖辈元素,但是两者还是有区别的,否则就没有存在的意义了
jQuery遍历之next()方法
(1)jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素紧邻的后面同辈元素的元素集合,此时可以用next()方法
jQuery遍历之prev()方法
(1)jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素紧邻的前面同辈元素的元素集合,此时可以用prev()方法
$("button:first").click(function() {
$('.item-2').prev().css('border','2px solid red')
})
jQuery遍历之siblings()
(1)jQuery是一个合集对象,如果想快速查找指定元素集合中每一个元素的同辈元素,此时可以用siblings()方法
jQuery遍历之add()方法
(1)jQuery是一个合集对象,通过$()方法找到指定的元素合集后可以进行一系列的操作。$()之后就意味着这个合集对象已经是确定的,如果后期需要再往这个合集中添加一新的元素要如何处理?jQuery为此提供add方法,用来创建一个新的jQuery对象 ,元素添加到匹配的元素集合中
(2).add()的参数可以几乎接受任何的$(),包括一个jQuery选择器表达式,DOM元素,或HTML片段引用。
(3)操作方式:
$('li').add('p')
$('li').add(document.getElementsByTagName('p')[0])
$('li').add('<p>新的p元素</p>').appendTo(目标位置)
jQuery遍历之each()
(1).each() 方法就是一个for循环的迭代器,它会迭代jQuery对象合集中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数
(2)三个重点
jQuery事件篇
jQuery鼠标事件之click与dbclick事件
(1)click方法用于监听用户单击操作:
(2)dbclick方法用于监听用户双击操作,dblclick()的用法和click()的用法是类似的。
(3)注意:在同一元素上同时绑定 click 和 dblclick 事件是不可取的。各个浏览器事件触发的顺序是不同的,一些浏览器在dblclick之前接受两个 click 事件 ,而一些浏览器只接受一个 click 事件。用户往往可通过不同的操作系统和浏览器配置双击灵敏度
jQuery鼠标事件之mousedown与mouseup事件
(1)用户交互操作中,最简单直接的操作就是点击操作,因此jQuery提供了一个mousedown的快捷方法可以监听用户鼠标按下的操作,与其对应的还有一个方法mouseup快捷方法可以监听用户鼠标弹起的操作
(2)mousedown事件触发需要以下几点:
(3)mouseup事件触发需要以下几点:
jQuery鼠标事件之mousemove事件
(1)用交互操作中,经常需要知道用户是否有移动的操作。基于移动的机制可以做出拖动、拖拽一系列的效果出来。针对移动事件,jQuery提供了一个mousemove的快捷方法可以监听用户移动的的操作
(2)mousemove事件触发需要以下几点:
jQuery鼠标事件之mouseover与mouseout事件
(1)jQuery当中同样提供了这样的事件来监听用户的移入移出操作,mouseover()与mouseout()事件,两者用法类似,下面一mouseover为例:
var n = 0;
//绑定一个mouseover事件
$(".aaron1 p:first").mouseover(function(e) {
$(".aaron1 a").html('进入元素内部,mouseover事件触发次数:' + (++n))
})
jQuery鼠标事件之mouseenter与mouseleave事件
(1)用交互操作中,经常需要知道用户操作鼠标是否有移到元素内部或是元素外部,因此jQuery提供了一个mouseenter和mouseleave的快捷方法可以监听用户移动到内部的操作
(2)mouseenter事件和mouseover的区别,关键点就是冒泡的方式处理问题。mouseover事件会层层向上冒泡,而mouseenter事件只会在绑定它的元素上被调用,而不会在后代节点上被触发。
jQuery鼠标事件之hover事件
(1)在元素上移进移出切换其换色,一般通过2个事件配合就可以达到,这里用mouseenter与mouseleave,这样可以避免冒泡问题
(2)这样目的是达到了,代码稍微有点多,对于这样的简单逻辑jQuery直接提供了一个hover方法,可以便捷处理,只需要在hover方法中传递2个回调函数就可以了,不需要显示的绑定2个事件
jQuery鼠标事件之focusin事件
(1)当一个元素,或者其内部任何一个元素获得焦点的时候,例如:input元素,用户在点击聚焦的时候,如果开发者需要捕获这个动作的时候,jQuery提供了一个focusin事件
jQuery鼠标事件之focusout事件
(1)当一个元素,或者其内部任何一个元素失去焦点的时候,比如input元素,用户在点击失去焦的时候,如果开发者需要捕获这个动作,jQuery提供了一个focusout事件
jQuery表单事件之blur与focus事件
(1)同样用于处理表单焦点的事件还有blur与focus事件,它们之间的本质区别:是否支持冒泡处理。
jQuery表单事件之change事件
(1)input元素,textarea和select元素的值都是可以发生改变的,开发者可以通过change事件去监听这些改变的动作
jQuery表单事件之select事件
(1)当 textarea 或文本类型的 input 元素中的文本被选择时,会发生 select 事件。
(2)这个函数会调用执行绑定到select事件的所有函数,包括浏览器的默认行为。可以通过在某个绑定的函数中返回false来防止触发浏览器的默认行为。
(3)select事件只能用于input元素与textarea元素
jQuery表单事件之submit事件
(1)提交表单是一个最常见的业务需求,比如用户注册,一些信息的输入都是需要表单的提交。同样的有时候开发者需要在表单提交的时候过滤一些的数据、做一些必要的操作(例如:验证表单输入的正确性,如果错误就阻止提交,从新输入)此时可以通过submit事件,监听下提交表单的这个动作。
(2)注意:form元素是有默认提交表单的行为,如果通过submit处理的话,需要禁止浏览器的这个默认行为,传统的方式是调用事件对象 e.preventDefault() 来处理, jQuery中可以直接在函数中最后结尾return false即可。
jQuery键盘事件之keydown()与keyup()事件
(1)鼠标有mousedown,mouseup之类的事件,这是根据人的手势动作分解的2个触发行为。相对应的键盘也有这类事件,将用户行为分解成2个动作,键盘按下与松手,针对这样的2种动作,jQuery分别提供了对应keydown与keyup方法来监听
(2)注意:
jQuery键盘事件之keypress()事件
(1)在input元素上绑定keydown事件会发现一个问题:每次获取的内容都是之前输入的,当前输入的获取不到
(2)keydown事件触发在文字还没敲进文本框,这时如果在keydown事件中输出文本框中的文本,得到的是触发键盘事件前的文本,而keyup事件触发时整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本
(3)keypress事件与keydown和keyup的主要区别:
(4)总结:
KeyPress主要用来接收字母、数字等ANSI字符,而 KeyDown 和 KeyUP 事件过程可以处理任何不被 KeyPress 识别的击键。诸如:功能键(F1-F12)、编辑键、定位键以及任何这些键和键盘换档键的组合等。
on()的多事件绑定
(1)之前学的鼠标事件,表单事件与键盘事件都有个特点,就是直接给元素绑定一个处理函数,所有这类事件都是属于快捷处理。翻开源码其实可以看到,所有的快捷事件在底层的处理都是通过一个"on"方法来实现的。jQuery on()方法是官方推荐的绑定事件的一个方法。
(2)最常见的给元素绑定一个点击事件,对比一下快捷方式与on方式的不同,最大的不同点就是on是可以自定义事件名。
(3)多个事件绑定同一个函数
$("#elem").on("mouseover mouseout",function(){ });
(4)多个事件绑定不同函数
on()的高级用法
(1)针对自己处理机制中,不仅有on方法,还有根据on演变出来的live方法(1.7后去掉了),delegate方法等等。这些方法的底层实现部分 还是on方法,这是利用了on的另一个事件机制委托的机制衍变而来的
卸载事件off()方法
(1)根据on绑定事件的一些特性,off方法也可以通过相应的传递组合的事件名,名字空间,选择器或处理函数来移除绑定在元素上指定的事件处理函数。当有多个过滤参数时,只有与这些参数完全匹配的事件处理函数才会被移除。
jQuery事件对象的作用
(1)在不同浏览器之间事件对象的获取, 以及事件对象的属性都有差异。jQuery根据 W3C 标准规范了事件对象,所以在jQuery事件回调方法中获取到的事件对象是经过兼容后处理过的一个标准的跨浏览器对象。
(2)事件对象是用来记录一些事件发生时的相关信息的对象。事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁。
(3)event.target代表当前触发事件的元素,可以通过当前元素对象的一系列属性来判断是不是我们想要的元素
jQuery事件对象的属性和方法
(1)event.type:获取事件的类型
(2)event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标
(3)event.preventDefault() 方法:阻止默认行为
(4)event.stopPropagation() 方法:阻止事件冒泡
(5)event.which:获取在鼠标单击时,单击的是鼠标的哪个键
(6)event.currentTarget : 在事件冒泡过程中的当前DOM元素,冒泡前的当前触发事件的DOM对象, 等同于this。
(7)this和event.target的区别:
jQuery自定义事件之trigger事件
(1)众所周知类似于mousedown、click、keydown等等这类型的事件都是浏览器提供的,通俗叫原生事件,这类型的事件是需要有交互行为才能被触发。
(2).trigger事件简单来讲就是:根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为
(2)更多详情
jQuery自定义事件之triggerHandler事件
(1)trigger事件还有一个特性:会在DOM树上冒泡,所以如果要阻止冒泡就需要在事件处理程序中返回false或调用事件对象中的.stopPropagation() 方法可以使事件停止冒泡
(2)trigger事件是具有触发原生与自定义能力的,但是存在一个不可避免的问题: 事件对象event无法完美的实现,毕竟一个是浏览器给的,一个是自己模拟的。尽管 .trigger() 模拟事件对象,但是它并没有完美的复制自然发生的事件,若要触发通过 jQuery 绑定的事件处理函数,而不触发原生的事件,使用.triggerHandler() 来代替
(3)triggerHandler与trigger的用法是一样的,重点看不同之处:
jQuery动画篇
jQuery中隐藏元素的hide方法
(1)让页面上的元素不可见,一般可以通过设置css的display为none属性。但是通过css直接修改是静态的布局,如果在代码执行的时候,一般是通过js控制元素的style属性,这里jQuery提供了一个快捷的方法.hide()来达到这个效果
(2)当提供hide方法一个参数时,.hide()就会成为一个动画方法。.hide()方法将会匹配元素的宽度,高度,以及不透明度,同时进行动画操作
(3)注意:jQuery在做hide操作的时候,是会保存本身的元素的原始属性值,再之后通过对应的方法还原的时候还是初始值。比如一个元素的display属性值为inline,那么隐藏再显示时,这个元素将再次显示inline。一旦透明度 达到0,display样式属性将被设置为none,这个元素将不再在页面中影响布局
jQuery中显示元素的show方法
(1)css中有display:none属性,同时也有display:block,所以jQuery同样提供了与hide相反的show方法,方法的使用几乎与hide是一致的,hide是让元素显示到隐藏,show则是相反,让元素从隐藏到显示
(2)注意:
jQuery中显示与隐藏切换toggle方法
(1)show与hide是一对互斥的方法。需要对元素进行显示隐藏的互斥切换,通常情况是需要先判断元素的display状态,然后调用其对应的处理方法。比如显示的元素,那么就要调用hide,反之亦然。 对于这样的操作行为,jQuery提供了一个便捷方法toggle用于切换显示或隐藏匹配元素
jQuery中下拉动画slideDown
(1).slideDown():用滑动动画显示一个匹配元素,将给匹配元素的高度的动画,这会导致页面的下面部分滑下去,弥补了显示的方式
(2)注意事项:
jQuery中上卷动画slideUp
(1)对于显示的元素,在将其隐藏的过程中,可以对其进行一些变化的动画效果。之前学过了hide方法,hide方法在显示的过程中也可以有动画,但 是.hide()方法将为匹配元素的宽度,高度,以及不透明度,同时进行动画操作。这里将要学习一个新的显示方法slideUp方法
(2)因为动画是异步的,所以要在动画之后执行某些操作就必须要写到回调函数里面,这里要特别注意
jQuery中上卷下拉切换slideToggle
(1)slideDown与slideUp是一对相反的方法。需要对元素进行上下拉卷效果的切换,jQuery提供了一个便捷方法slideToggle用滑动动画显示或隐藏一个匹配元素
jQuery中淡出动画fadeOut
(1)fadeOut()函数用于隐藏所有匹配的元素,并带有淡出的过渡动画效果
jQuery中淡入动画fadeIn
(1)fadeOut是淡出效果,相反的还有淡入效果fadeIn,方法使用上两者都是一致的,只是结果相反
(2)注意
jQuery中淡入淡出切换fadeToggle
(1)fadeToggle()函数用于切换所有匹配的元素,并带有淡入/淡出的过渡动画效果。之前也学过toggle、slideToggle 也是类似的处理方式
(2)fadeToggle切换fadeOut与fadeIn效果,所谓"切换",即如果元素当前是可见的,则将其隐藏(淡出);如果元素当前是隐藏的,则使其显示(淡入)。
jQuery中淡入效果fadeTo
(1)淡入淡出fadeIn与fadeOut都是修改元素样式的opacity属性,但是他们都有个共同的特点,变化的区间要么是0,要么是1
(2)jQuery提供了fadeTo方法,可以设置透明度的数值
jQuery中toggle与slideToggle以及fadeToggle的比较
(1)toggle、sildeToggle以及fadeToggle的区别
(2)toggle与slideToggle细节区别
(3)fadeToggle方法
jQuery中动画animate(上)
(1)有些复杂的动画通过之前学到的几个动画函数是不能够实现,这时候就需要强大的animate方法了,操作一个元素执行3秒的淡入动画,对比一下2组动画设置的区别
(2).animate()方法允许我们在任意的数值的CSS属性上创建动画。
jQuery中动画animate(下)
(1)animate在执行动画中,如果需要观察动画的一些执行情况,或者在动画进行中的某一时刻进行一些其他处理,我们可以通过animate提供的第二种设置语法,传递一个对象参数,可以拿到动画执行状态一些通知
(2)语法:
.animate( properties, options )
,options参数jQuery中停止动画stop
(1)动画在执行过程中是允许被暂停的,当一个元素调用.stop()方法,当前正在运行的动画(如果有的话)立即停止
(2)语法:
jQuery中each方法的应用
(1)jQuery提供了一个通用的jQuery.each方法,用来处理对象和数组的遍历
(2)each就是for循环方法的一个包装,内部就是通过for遍历数组与对象,通过回调函数返回内部迭代的一些参数,第一个参数是当前迭代成员在对象或数组中的索引值(从0开始计数),第二个参数是当前迭代成员(与this的引用相同
jQuery中查找数组中的索引inArray
(1)jQuery封装了inArray()函数判断元素是否存在数组中。注意了:在ECMAScript5已经有数据的indexOf方法支持了,但是jQuery保持了版本向下兼容,所以封装了一个inArray方法
(2)jQuery.inArray()函数用于在数组中搜索指定的值,并返回其索引值。如果数组中不存在该值,则返回 -1。
$.inArray(5,[1,2,3,4,5,6,7]) //返回对应的索引:4
jQuery中去空格神器trim方法
(1)jQuery.trim()函数用于去除字符串两端的空白字符,这个函数很简单,没有多余的参数用法
(2)注意:
jQuery中DOM元素的获取get方法
(1)jQuery是一个合集对象,如果需要单独操作合集中的的某一个元素,可以通过.get()方法获取到,比如第二个a元素的查找:
$(a).get(1)
(2)注意
(3)get方法还可以从后往前索引,传递一个负索引值,注意的负值的索引起始值是-1,同样是找到第二个元素,可以传递
$(a).get(-2)
jQuery中DOM元素的获取index方法
(1)get方法是通过已知的索引在合集中找到对应的元素。如果反过来,已知元素如何在合集中找到对应的索引呢?.index()方法,从匹配的元素中搜索给定元素的索引值,从0开始计数。
(2)要点
jQuery的Ajax应用与常用插件
使用load()方法异步请求数据
(1)使用load()方法通过Ajax请求加载服务器中的数据,并把返回的数据放置到指定的元素中,它的调用格式为:
load(url,[data],[callback])
。参数url为加载服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。使用getJSON()方法异步加载JSON格式数据
(1)使用getJSON()方法可以通过Ajax异步请求的方式,获取服务器中的数据,并对获取的数据进行解析,显示在页面中,它的调用格式为:
jQuery.getJSON(url,[data],[callback])或$.getJSON(url,[data],[callback])
,其中,url参数为请求加载json格式文件的服务器地址,可选项data参数为请求时发送的数据,callback参数为数据请求成功后,执行的回调函数。(2)demo.json文件源码
使用getScript()方法异步加载并执行js文件
(1)使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示:
jQuery.getScript(url,[callback])或$.getScript(url,[callback])
。参数url为服务器请求地址,可选项callback参数为请求成功后执行的回调函数。使用get()方法以GET方式从服务器获取数据
(1)使用get()方法时,采用GET方式向服务器请求数据,并通过方法中回调函数的参数返回请求的数据,它的调用格式如下:
$.get(url,[callback])
使用post()方法以POST方式从服务器发送数据
(1)与get()方法相比,post()方法多用于以POST方式向服务器发送数据,服务器接收到数据之后,进行处理,并将处理结果返回页面,调用格式如下:
$.post(url,[data],[callback])
。参数url为服务器请求地址,可选项data为向服务器请求时发送的数据,可选项callback参数为请求成功后执行的回调函数。使用serialize()方法序列化表单元素值
(1)使用serialize()方法可以将表单中有name属性的元素值进行序列化,生成标准URL编码文本字符串,直接可用于ajax请求,它的调用格式如下:$(selector).serialize()。其中selector参数是一个或多个表单中的元素或表单元素本身
使用ajax()方法加载服务器数据
(1)使用ajax()方法是最底层、功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下:
jQuery.ajax([settings])或$.ajax([settings])
其中参数settings为发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType为服务器返回的数据类型,success为请求成功的执行的回调函数,type为发送数据请求的方式,默认为get。
使用ajaxSetup()方法设置全局Ajax默认选项
(1)使用ajaxSetup()方法可以设置Ajax请求的一些全局性选项值,设置完成后,后面的Ajax请求将不需要再添加这些选项值,它的调用格式为:jQuery.ajaxSetup([options])或$.ajaxSetup([options])。可选项options参数为一个对象,通过该对象设置Ajax请求时的全局选项值。
使用ajaxStart()和ajaxStop()方法
(1)ajaxStart()和ajaxStop()方法是绑定Ajax事件。ajaxStart()方法用于在Ajax请求发出前触发函数,ajaxStop()方法用于在Ajax请求完成后触发函数。它们的调用格式为:
$(selector).ajaxStart(function())和$(selector).ajaxStop(function())
。其中,两个方法中括号都是绑定的函数,当发送Ajax请求前执行ajaxStart()方法绑定的函数,请求成功后,执行ajaxStop ()方法绑定的函数。The text was updated successfully, but these errors were encountered: