JQuery

作者: Lizzy95 | 来源:发表于2017-09-23 15:59 被阅读0次

    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

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

    相关文章

      网友评论

        本文标题:JQuery

        本文链接:https://www.haomeiwen.com/subject/oxmcextx.html