我爱编程

JQuery

2017-09-23  本文已影响0人  Lizzy95

JQuery

1、JQuery特点

(1)轻量级  (2)链式语法 (3)简单 (4)写的更少,做的更多

2、本地调用:

3、远程调用(联网的情况下可以使用百度或者谷歌的JQuery CDN):

4、window.onload和$(document).ready()区别

window.onload

$(document).ready()

执行时机

必须等待网页全部加载完毕(包括 图片等),然后再执行包裹代码

只需要等待网页中的DOM结构 加载完毕,就能执行包裹的代码

执行次数

只能执行一次,如果第二次,那么 第一次的执行会被覆盖

可以执行多次,第N次都不会被上 一次覆盖

5、入口函数

$(document).ready(function(){})或者$(function(){})

6、jQuery对象转化为DOM对象

<1>jquery对象[下标]  eg:$(“div”)[0]

<2>jquery对象.get(下标)  eg:$(“div”).get(0)

7、DOM对象转化为JQuery对象$(dom对象)

单条属性设置:

jquery对象.css('属性名','属性值');

多条属性设置:

jquery对象.css({"属性名1":"属性值1","属性名2":"属性值2",....})

获取:

jquery.css("属性名");

8、JQuery选择器

(1)基本选择器

#id$(“#hel”)选择id=hel的元素

.class$(“#hel”)选择id=hel的元素

Element$(“div”)选择所有的div元素

*$(“*”)选择所有元素

E1,E2,E3$(“div,span,.hotclass”)选择所有div,span,和class为hotcalss的元素

(2)层次选择器

$(“E1 E2”)$(“div span”)选择div下所有span

$(“E1>E2”)$(“div > span”)选择div下的span元素,不包含span下的span元素

$(“E1+E2” )$(“.one + div”)选择class=one的下一个div元素

$(“E1 + E2”)可以用$(E1).next(E2)代替

$(“E1~ E2”)$(“#one ~ div”)选择id为one后的所有div元素

$(“E1 ~ E2”)可以用$(E1).nextAll(E2)代替

(3)过滤选择器

<1>基本过滤选择器

:first$(“div:first”)选择第1个div元素

:last$(“div:last”)选择最后1个div元素

:not(E1)$(“input:not(.my)”)选择class不是.my的所有input元素

:even$(“tr:even”)选择表格中所有偶数的行

:odd$(“tr:odd”)选择表格中所有奇数的行

:eq(index)$(“tr:eq(1)”)选择表格行索引等于1的行

:gt(index)$(“tr:gt(1)”)选择表格行索引大于1的行

:lt(index)$(“tr:lt(1)”)选择表格行索引小于1的行

:header$(“:header”)选择网页中所有的h标题

:animated$(“div:animated”)选择正在执行动画的div元素

<2>内容过滤选择器

:contains(text)$(“div:contains(‘我’)”)选择内容里包含我的所有div

:empty$(“div:contains(‘我’)”)选择内容里包含我的所有div

:has(E1)$(“div:has(p)”)选择含有p元素的所有div元素

:parent$(“div:parent”)选择拥有子元素(包含文本)的所有div元素

<3>可见性过滤选择器

:hidden$(“:hidden”)选择所有不可见元素,包括:,和等,如果只选择input元素,则可以使用 $(“input:hidden”)

:visible$(“div:visible”)选取所有可见的div元素

<4>属性过滤选择器

$(“div[id]”)选择拥有id属性的div元素

$(“div[id=test]”)选择id属性值为test的div元素

$(“div[id!=test]”)选择id属性值不为test的div元素,没有id属性的div也会被选择

$(“div[id^=test]”)选择id属性值以test开始的所有div元素

$(“div[id$=test]”)选择id属性值以test结束的所有div元素

$(“div[id*=test]”)选择id属性值中含有test的所有div元素

$(“div[id][title$=test]”)选择拥有id属性,并且title属性以test结束的所有div元素

<5>子元素过滤选择器

:eq(index)只匹配一个元素,而:nth-child(index)将为每一个父元素匹配子元素,并且:nth-child(index)的index从1开始,而:eq(index)的index从0开始.

:first只选择单个元素,而:first-child将为每个父元素匹配第1个子元素如:

$(“ul li:first-child”)选择每个ul下的第一个li

$(“ul li:last-child”)选择每个ul下的最后一个li

$(“ul li:only-child”)在

中选取是惟一子元素的li

表单对象属性过滤选择器

:enabled$(“#form1 :enabled”)选取id为form1的表单内的所有可用元素

:disabled$(“#form1 :disabled”)选取id为form1的表单内所有不可用元素

:checked$(“input:checked”)选择所有被选中的

:selected$(“select :selected”)选取所有被选中的选项元素

(4)表单选择器

:input匹配所有input textarea selectbutton元素,$(“:input”)

:text匹配所有单行文本框,$(“:text”)

:password选择所有密码框,$(“:password”)

:radio选择所有单选框,$(“:radio”)

:checkbox选择所有复选框,$(“:checkbox”)

:submit   匹配所有提交按钮,$(“:submit”)

:image   匹配所有图像按钮,$(“:image”)

:reset   匹配所有重置按钮,$(“:reset”)

:button  匹配所有按钮,$(“:button”)

:file    匹配所有文件域,$(“:file”)

:hidden   匹配所有不可见元素,$(“:hidden”)

(5)jQuery中的方法

<1>

Show()显示隐藏的匹配元素,可带整数参数表示时间,单位是毫秒

Hide()隐藏显示的匹配元素,可带整数参数表示时间,单位是毫秒

css(name,value)给匹配的元素设置css样式

Text(string)获取或设置匹配元素的文本内容,不包含html标签

Filter(expr)筛选出与指定表达式匹配的元素集合,其中expr可以是多个选择器的组合

addClass(类名)为匹配的元素增加一个 类样式

removeClass(class)为匹配的元素移除一个类样式

html()获取或设置匹配元素的内容,包含html标签

siblings()$(“.abc”).siblings()匹配得到class=abc的其它兄弟元素

<2>设置单条样式

.css(“属性名”,”属性值”)

<3>设置多条样式

.css({“属性名1”:”属性值1”,”属性名2”:”属性值2”,……})

获取样式值

.css(“属性名”)

<4>增加类(可增加/删除多个类)

.addClass(“类名1 类名2 ……”)   多个类名之间用空格隔开

.removeClass(“”)

.toggleClass(“”)

.toggleClass(“类名”,true/false)    用来判断样式类添加还是移除的 布尔值

<5>操作元素中的内容

设置:

.html(“str”)   设置元素的里面的内容 可用带html标签相当于js中的innerHTML

.text(“str”)    设置元素的里面的内容 可用不带html标签相当于js中的innerText

.val(“str”)

设置表单的值相当于js中的value

获取

.html()       .text()        .val()

<6>动画操作

1.

Show(参数1,参数2)/hide(参数1,参数2)

参数1(可选):速度,可为fast,slow,或毫秒值。

参数2(可选):回调函数,动画执行完毕后执行

Toggle(参数1,参数2):

是show和hide的互斥方法,能模拟两者的功能。

2.

slideUp(参数1,参数2)/slideDown(参数1,参数2)

互斥方法:slideToggle(参数1,参数2)

3.

fadeIn(参数1,参数2)/fadeOut(参数1,参数2)

fadeTo(速度,透明度,回调函数)

互斥方法:fadeToggle(参数1,参数2)

9、jquery文档处理

新创建一个元素:var $newD = $(“

”);

(1)内部插入

<1>append()

父jquery对象.append(内容)   把内容追加到父jquery对象里 (里面最后一个元素的位置)

$(内容).append

$(内容).appendTo(父jquery对象)

<2>prepend()  prependTo()  用法同上

(2)外部插入

在参照物后面插入新对象:

jQuery参照对象.after(内容)

$(内容).insertAfter(jQuery对象参照物)

在参照物前面插入新对象:

jQuery参照对象.bofore(内容)

$(内容).insertBefore(jQuery对象参照物)

(3)删除元素

$(“div”).remove()和$(“div”).detach():全删除,包括所有文本和子节点

$(“div”).empty()  清空jQuery里内容(div还在)

(4)替换元素

$(“div”).replaceWith(“内容”)   用内容替换前面的JQuery对象,全部替换

(5)复制元素

JQuery对象.clone(参数)

参数:可选,默认为false,克隆时不克隆行为,为true时,会克隆事件。

(6)包装元素

<1>.wrap(包裹格式)

eg:$(“span”).wrap(“

”)

每一个span都有div包着

<2>.wrapAll()

eg:$(“span”).wrapAll(“

”)

所有span用一个div包着

<3>.wrapInner()

eg:$(“span”).wrapInner(“”)

用span包着b

<4>.unwrap()

删除直接父元素

(7)DOM属性操作

.attr()方法

获取属性  $(“span”).attr(“id”)

设置属性  $(“span”).attr(“属性名”,“属性值”)

(能获取或设置自定义的属性)

.prop() 用法同attr()  但只能获取本身都有的,不能获取或设置自定义的属性

注意:写全选框时,用prop获取属性,attr获取不到checked隐藏属性

.removeAttr()  移除属性

(8)CSS操作

offset():返回或设置匹配元素相对于文档的偏移(位置)

设置偏移量时,会自动的把元素声明为定位元素

获取向上/向左卷去的距离

jquery对象.scrollTop()/jquery对象.scrollLeft()

设置

直接在括号内加数值,eg:jquery对象.scrollTop(40)

获取相对于父元素的偏移量:

jquery对象.position().top/jquery对象.position().left

jquery对象.width()/.height()不受margin,padding,border的影响。

innerHeight()和innerWidth()不受margin,border的影响,受padding的影响。

outerHeight()和outerWidth()不受margin影响,受padding,bottom影响。

10、绑定事件

bind(type,function)

type:事件类型(例如:blur,focus,load,click)

function是用来绑定的处理函数。

(1)绑定单个事件

bind(“事件名”,function(){})

on(“事件名”,function(){})

(2)绑定多个事件

on(“事件名1”:“function(){}”,“事件名2”:“function(){}”)

(3)一次性绑定事件

one(“事件名”,function(){})

(4)解除绑定(事件移除)

unbind(“事件名”)   可解除多个事件

off(“事件名”)

11、事件合成

hover(enter,leave)

enter和leave都是function(),当光标移动到元素上时,会触发指定的第一个函数,当光标移出这个元素时,触发指定的第二个函数。

12、事件冒泡

阻止事件冒泡:event.stopProPagation()

阻止默认行为:event.preventDefault()

13、模拟操作

trigger(type,[,data])

type:要触发的事件类型

[,data]:传递给事件处理函数的附加数据,以数组的形式传递。

也可以用triggerHandler()

区别:triggerHandler()不会触发默认行为,而只执行事件代码。

14、动画

animate(left:“”,speed,function)

(1)相对动画(使用+=或者-=)

$(“#pos”).animate({left:”+=20px”},fast);

(2)同时执行多个动画

$(“#pos”).animate({left:”+=20px”,height:”+=20px”},fast);

(3)停止动画

stop(stopAll,goToEnd))

停止当前正在运行的动画。

stopAll:可选。默认false,规定是否停止当前的动画,后面的动画继续执行。

goToEnd:可选。默认false,是否允许完成当前的动画。

stop(true,true)方法:

判断元素是否处于动画状态

(4)延迟动画

jquery对象.delay(duration)

可以将队列中等待执行的下一个动画(回调函数里的动画)延迟指定时间后执行。它常用在队列的两个jQuery效果函数之间,从而在上一个动画效果执行后延迟下一个效果的执行时间。

注意:如果下一项不是效果动画,则它不会被加入效果队列中,因此该函数不会对它进行延迟调用。

15、遍历

(1)向上遍历

parent():返回被选元素的直接父元素。

parents():返回被选元素的所有祖先元素。一直到文档根元素()。

parents()也可以直接指定父元素。

eg:$(“span”).parents(“ul”)  返回所有元素的所有祖先,并且是

元素。

parentsUntil():返回介于两个给定元素之间的所有祖先元素。

eg:$("#big2").parentsUntil(“#big0”).css("background-color","green");

(2)向下遍历

children():返回被选元素的所有直接子元素。

find():返回被选元素的后代元素,直到最后一个后代。

(3)水平遍历

siblings():返回被选元素的所有兄弟元素。

next():返回被选元素的下一个兄弟元素。

nextAll():返回被选元素的所有跟随的兄弟元素。

nextUntil():返回介于两个给定参数之间的所有跟随的同胞元素。

prev(),preAll(),prevUntil()

(4)过滤

1.first() 方法返回被选元素的首个元素。

2.last() 方法返回被选元素的最后一个元素。

3.eq() 方法返回被选元素中带有指定索引号的元素。

4.filter() 方法允许规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。

例如:

$(".parent div").filter(":odd").css("color","red");

5.not() 方法返回不匹配标准的所有元素。

not() 方法与 filter() 相反。

16、jQuery get与eq方法区别

eq返回的是一个jQuery对象,get返回的是一个html对象数组,所以eq可以继续调用jquery其他方法,get就不能调用jquery的其他方法。

17、each()方法

$(selector).each(function(index){})

可以遍历指定的元素集合,通过回调函数返回遍历元素的序列号。

18、jQuery开发插件

1.对象级别jQuery.fn.extend();

2.类级别    jQuery.extend();

$.fn.插件名字=function{ }

$.fn = jQuery.prototype = $.prototype

jQuery.extend(object)

为jQuery类添加类方法,可以理解为添加静态方法。如:

jQuery.extend({

min: function(a, b) { return a < b ? a : b; },

max: function(a, b) { return a > b ? a : b; }

});

jQuery.min(2,3); //  2

jQuery.max(4,5); //  5

ObjectjQuery.extend( target, object1, [objectN]):

用一个或多个其他对象来扩展一个对象,返回被扩展的对象

target

类型: Object

一个对象,如果附加的对象被传递给这个方法将那么它将接收新的属性,如果它是唯一的参数将扩展jQuery的命名空间。

object1

类型: Object

一个对象,它包含额外的属性合并到第一个参数

objectN

类型: Object

包含额外的属性合并到第一个参数

jQuery.extend( [deep ], target, object1 [, objectN ] )

deep

类型: Boolean

如果是true,合并成为递归(又叫做深拷贝)。

target

类型: Object

对象扩展。这将接收新的属性。

object1

类型: Object

一个对象,它包含额外的属性合并到第一个参数.

objectN

类型: Object

包含额外的属性合并到第一个参数

上一篇下一篇

猜你喜欢

热点阅读