• Web | jQuery学习笔记


    jQuery 是一个 JavaScript 函数库,将 JS 的一些功能实现封装成了函数,极大地简化了 JavaScript 编程。
    jQuery是 John Resig 于2006年创建的一个开源项目,jQuery集成了 JavaScript、CSS、 DOM 和 Ajax 于一体的强大功能。它可以用最少的代码, 完成更多复杂而困难的功能。

    1. 引入jQuery

    1.1 jQuery版本

    jQuery版本:

    • jQuery-1.x.x:兼容IE6/7/8低级浏览器。
    • jQuery-2.x.x:不兼容IE6/7/8。
    • jQuery-3.x.x:全面支持HTML5和CSS3。

    jQuery版本分类:

    • Development version:[jquery.js] 开发版,未压缩,用于测试和开发。
    • Production version:[jquery.min.js] 精简版,已被压缩。

    1.2 引入jQuery

    <head>
    	<script type="text/javascript" src="js//jquery-1.12.4.js"></script>
    </head>
    

    2. jQuery入门

    2.1 jQuery对象与DOM对象

    jQuery简化了JS编程,多数JS功能实现都被封装成了函数,而调用这些jQuery函数必须使用jQuery对象。

    jQuery对象本质是一个DOM对象数组。

    // DOM对象转jQuery对象
    var $jQueryObj = $(DOMObj);
    // jQuery对象转DOM对象
    var DOMObj = $jQueryObj[0];
    var DOMObj = $jQueryObj.get(0);
    

    jQuery对象命名一般以$为前缀

    2.2 jQuery入口函数

    第一种写法:

    $(document).ready(function(){
        jQuery代码
    });
    

    第二种写法:

    $(function(){
        jQuery代码
    });
    

    jQuery入口函数与JS入口函数的区别
    ①jQuery的入口函数只等待DOM树加载完即执行;
    ②JS入口函数需要等待所有资源加载完成再执行;

    2.3 jQuery基础语法

    $("选择器").操作函数()
    

    $():即jQuery(),本质是一个函数。

    3. jQuery选择器

    jQuery选择器:获取元素

    3.1 元素选择器

    元素选择器 描述
    * 通配符选择器
    #id id选择器
    .class 类选择器
    element 元素选择器
    s1s2 交集选择器
    s1,s2 并集选择器
    s1 s2 后代选择器
    s1 > s2 子元素选择器

    3.2 属性选择器

    属性选择器 描述
    [attr] 属性选择器
    [attr=value] 属性=值的元素
    [attr!=value] 属性!=值的元素
    [attr$=value] 属性值以value结尾的元素

    3.3 过滤选择器

    位置 描述
    :first 第一个元素
    :last 第二个元素
    :odd 所有奇数元素
    :even 所有偶数元素
    索引位置 描述
    :eq(index) 指定索引的元素
    (index从0开始)
    :gt(num) 所有索引>num的元素
    :lt(num) 所有索引<num的元素
    标签类型 描述
    :header 所有标题元素
    :animated 所有动画元素
    元素状态 描述
    :contains(text) 包含指定文本的元素
    :empty 无子节点的元素
    :hidden 所有隐藏的元素
    :visible 所有可见的元素

    3.4 表单选择器

    表单元素 描述
    :input 所有<input>元素
    :text 所有type="text"<input> 元素
    :password 所有type="password"<input>元素
    :radio 所有type="radio"<input>元素
    :checkbox 所有type="checkbox"<input>元素
    :submit 所有type="submit"<input>元素
    :reset 所有type="reset"<input>元素
    :button 所有type="button"<input>元素
    :image 所有type="image"<input>元素
    :file 所有type="file"<input>元素
    :enable 所有激活的<input>元素
    :disabled 所有禁用的<input>元素
    :selected 所有被选取的<input>元素
    :checked 所有被选中的<input>元素

    4. jQueryDOM★

    4.1 DOM 操作★

    4.1.1 DOM HTML内容

    1.text():设置/获取所选元素的文本内容

    $("selector").text();  // 获取文本内容
    $("selector").text("文本内容");  // 设置文本内容
    

    2.html():设置/获取所选元素的内容

    $("selector").html();  // 获取HTML内容
    $("selector").html("HTML代码");  //设置 HTML内容
    

    3.val():设置/获取表单字段的值

    $("selector").val();  // 获取表单字段的值
    $("selector").val("表单字段值");  // 设置表单字段的值
    

    4.1.2 DOM HTML属性

    1.attr()HTML属性,只能返回string的结果

    $("selector").attr("属性名");  // 获取HTML属性
    $("selector").attr("属性名", "值");  // 设置HTML属性
    $("selector").attr({"属性名":"值", "属性名":"值"});  // 设置多个HTML属性
    

    2.prop()DOM属性,如selected,disabled,checked等属性。

    $("selector").prop("属性名");  // 获取属性
    $("selector").prop("属性名", "值");  // 设置属性
    $("selector").prop({"属性名":"值", "属性名":"值"});  // 设置多个属性
    

    4.1.3 DOM 插入元素

    1.append():在被选元素的结尾追加内容

    $("selector").append("插入内容");
    

    2.prepend():在被选元素的开头插入内容

    $("selector").prepend("插入内容");
    

    3.before():在被选元素之前插入内容

    $("selector").before("插入内容");
    

    4.after():在被选元素之后插入内容

    $("selector").after("插入内容");
    

    4.1.4 DOM 删除元素

    1.remove():删除被选元素及其子元素

    $("selector").remove();
    

    2.empty():删除被选元素的所有子元素

    $("selector").empty();
    

    4.1.5 DOM CSS类

    1.addClass():向被选元素添加一个或多个样式类

    $("selector").addClass("类名");
    

    2.removeClass():从被选元素移除一个或多个类

    $("selector").removeClass("类名");
    

    3.toggleClass():对被选元素进行类切换(本质是类的添加/删除)

    $("selector").toggleClass("类名");
    

    4.hasClass():判断被选元素是否存在类

    $("selector").hasClass("类名");
    

    4.1.6 DOM CSS属性

    1.css():设置或返回样式属性

    $("selector").css("样式属性");       // 获取样式属性值
    $("selector").css("样式属性","值");  // 设置样式属性
    $("selector").css({"样式属性":"值","样式属性":"值",...});  // 设置多个样式属性
    

    4.1.7 DOM 元素尺寸

    1.width():设置或返回元素的宽度(不包括内边距、边框、外边距)

    $("selector").width();
    

    2.height():设置或返回元素的高度(不包括内边距、边框、外边距)

    $("selector").height();
    

    3.innerWidth():返回元素的宽度(包括内边距)

    $("selector").innerWidth(); 
    

    4.innerHeight():返回元素的高度(包括内边距)

    $("selector").innerHeight();
    

    5.outerWidth():返回元素的宽度(包括内边距、边框)

    $("selector").outerWidth();
    

    6.outerHeight():返回元素的高度(包括内边距、边框)

    $("selector").outerHeight();
    

    7.outerWidth(true):返回元素的宽度(包括内边距、边框和外边距)

    $("selector").outerWidth(true);
    

    8.outerHeight(true):返回元素的高度(包括内边距、边框和外边距)

    $("selector").outerHeight(true);
    

    4.1.8 DOM 位置

    1.scrollTop():滚动条顶部偏移量

    $("selector").scrollTop();
    

    2.scrollLeft():滚动条左边偏移量

    $("selector").scrollLeft();
    

    4.2 DOM 遍历★

    4.2.1 向上遍历-祖先

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

    $("selector").parent("筛选选择器");  // 直接父元素,可筛选
    

    2.parents():返回被选元素的所有祖先元素,向上遍历直到根<html>

    $("selector").parents("筛选选择器");  // 所有祖先元素,可筛选
    

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

    $("selector1").parentsUntil("selector2"); 
    

    4.2.2 向下遍历-后代

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

    $("selector").children("筛选选择器");  // 返回直接子元素,可筛选
    

    2.find():返回被选元素的所有后代元素

    $("selector").find("筛选选择器"); // 返回后代元素,可筛选
    

    4.2.3 水平遍历-兄弟

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

    $("selector").siblings("筛选选择器");  // 返回所有兄弟元素,可筛选
    

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

    $("selector").next("筛选选择器");  // 返回下一个兄弟元素,可筛选
    

    3.nextAll():返回被选元素之后的兄弟元素

    $("selector").nextAll("筛选选择器");  // 返回元素之后的兄弟元素,可筛选
    

    4.nextUntil():返回介于两个给定元素之间的所有兄弟元素

    $("selector1").nextUntil("selector2");  // 从selector1水平向后遍历直到selector2
    

    5.prev():返回被选元素的上一个兄弟元素

    $("selector").prev("筛选选择器");  // 返回上一个兄弟元素,可筛选
    

    6.prevAll():返回被选元素之前的同胞元素

    $("selector").prevAll("筛选选择器");  // 返回元素之前的兄弟元素,可筛选
    

    7.prevUntil():返回介于两个给定元素之间的所有同胞元素

    $("selector1").prevUntil("selector2");  // 从selector1水平向前遍历直到selector2
    

    4.2.3 元素筛选

    1.eq():返回被选元素中带有指定索引的元素

    $("selector").eq(index);  // 返回指定索引的元素
    

    2.filter():返回匹配筛选标准的元素

    $("selector").filter("筛选选择器");  // 返回匹配筛选选择器的元素
    

    3.not():返回不匹配筛选标准的元素

    $("selector").not("筛选选择器");  // 返回不匹配筛选选择器的元素
    

    4.first():获取第一个元素

    $("selector").first();
    

    5.last():获取最后一个元素

    $("selector").last();
    

    5. jQuery效果

    5.1 隐藏/显示

    1.show():显示

    $("selector").show(speed,callback);
    

    2.hide():隐藏

    $("selector").hide(speed,callback);
    

    3.toggle():切换hide()/show()

    $("selector").toggle(speed,callback)
    

    speed:速度(ms),[可选参数]
    callback:当前动画 100% 完成之后执行的函数,[可选参数]

    5.2 淡入/淡出-fade

    1.fadeIn():淡入已隐藏的元素

    $("selector").fadeIn(speed,callback);
    

    2.fadeOut():淡出已显示的元素

    $("selector").fadeIn(speed,callback);
    

    3.fadeToggle():切换fadeIn()和fadeOut()

    $("selector").fadeToggle(speed,callback);
    

    4.fadeTo():允许渐变为给定的不透明度

    $("selector").fadeTo(speed,opacity,callback);
    

    speed:速度(ms),[可选参数]
    opacity:不透明度(0~1),[可选参数]
    callback:当前动画 100% 完成之后执行的函数,[可选参数]

    5.3 滑动-slide

    1.slideDown():向下滑动元素

    $("selector").slideDown(speed,callback);
    

    2.slideUp():向上滑动元素

    $("selector").slideUp(speed,callback);
    

    3.slideToggle():切换slideDown()和slideUp()

    $("selector").slideToggle(speed,callback);
    

    5.4 自定义动画-animate

    animate():自定义动画

    $("selector").animate({params},speed,callback);
    

    params:定义形成动画的CSS属性,[必要参数]
    speed:速度(ms),[可选参数]
    callback:当前动画 100% 完成之后执行的函数,[可选参数]

    5.5 停止效果-stop

    stop():在动画或效果完成前对它们进行停止

    $("selector").stop(stopAll,goToEnd);
    

    stopAll:是否清除动画队列;默认false-仅停止活动的动画,允许队列中后面的动画执行。
    goToEnd:是否立即完成当前动画 ;默认false。

    6. jQuery事件机制

    6.1 事件类型

    事件句柄 描述
    ready DOM载入
    click 鼠标单击
    focus 元素获得焦点
    blur 元素失去焦点
    mouseover 鼠标覆盖
    mouseout 鼠标移开
    mouseup 鼠标点击
    mousedown 鼠标松开
    scroll 窗口滚动
    change 发生改变
    unload 退出页面
    submit 点击提交
    keydown 某个键盘的键被按下
    keypress 某个键盘的键被按下或按住
    keyup 某个键盘的键被松开

    6.2 事件绑定方式

    1.简单事件绑定

    $("selector").事件(handler);
    

    一次只能绑定一个事件

    2.bind():事件绑定

    $("selector").bind("events"[,data],handler);
    

    bind()不支持动态绑定。

    3.delegate():事件委托

    $("selector").delegate("childSelector","events"[,data],handler);
    

    通过委托父元素可以动态为当前或未来子元素绑定事件;

    4.on():统一事件绑定方式,推荐使用

    $("selector").on("events"[,"childSelector"][,data],handler)
    

    events:事件,多个事件以空格分隔
    childSelector:后代元素,[可选]
    data:传递给handler的数据,事件触发后通过event.data调用,[可选]
    handler:事件处理函数

    6.3 事件移除方式

    1.unbind():移除被选元素的事件

    $("selector").unbind("events",handler);
    

    2.undelegate():移除由delegate()添加的事件

    $("selector").undelegate("selector","events",handler); 
    

    events:规定需要删除处理函数的一个或多个事件类型 ,[可选]
    selector:规定需要删除事件的选择器 ,[可选]
    handler:规定要删除的具体事件处理函数 ,[可选]

    3.off():解除事件绑定,推荐使用

    $("selector").off("events"[,"selector"][,handler],map);
    

    events:规定需要删除处理函数的一个或多个事件类型 ,[可选]
    selector:规定需要删除事件的选择器 ,[可选]
    handler:规定要删除的具体事件处理函数 ,[可选]
    map:规定事件映射 ({event:function, event:function, ...}) ,包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。

    7. jQuery杂项(难点)

    7.1 链式编程

    链式编程:使用一个jQuery对象不断地调用(点调用)函数。栗子如下:

    $("div").addClass("highlight").children("a").show().end().siblings().removeClass("highlight").children("a").hide();
    

    非筛选函数:函数返回当前jQuery对象,jQuery对象不发生改变,如addClass(),hide()...
    筛选函数:函数返回新的jQuery对象,如find(),parent()...

    链式编程原理:jQuery的非筛选函数都返回其本身

    return this
    

    end():结束当前链条中的最近的筛选操作,并将匹配元素集还原为之前的状态

    jQueryObj.end()
    

    链式编程本质★
    jQuery对象(即包装后的DOM对象)
    ①调用筛选/遍历函数后返回新的jQuery对象,将新的jQuery对象压入栈内;
    ②调用非筛选/遍历函数后返回本身(return this)。
    ③调用end()将栈顶元素 (当前jQuery对象) 弹出栈,指向新的栈顶元素 (最近上一次的jQuery对象)。

    7.2 隐式迭代

    隐式迭代:jQuery对象本质是DOM对象数组,即$("selector")返回一个对象数组。jQuery会自动对匹配到的DOM数组进行循环遍历,执行所调用的函数。

    设置操作:隐式迭代,循环遍历DOM对象数组执行设置函数。

    获取操作:大部分情况下返回第一个元素的值。

    7.3 each方法

    each():为每个匹配元素规定运行的函数

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

    function():为每个匹配元素规定运行的函数,[必要参数]
    index:选择器的index位置
    element:当前的元素

    7.4 多库共存

    jQuery使用$标识符作为jQuery的简写符号 ,如果页面上同时存在其他JS库正在使用相同的简写符号$怎么办呢?

    noConflict():释放$标识符的控制

    var a = $.noConflict();  // 释放$的控制权,将$的能力赋予a。
    
  • 相关阅读:
    200. Number of Islands
    [Leetcode] 70. Climbing Stairs Java
    LeetCode 64. Minimum Path Sum Java
    LeetCode 63. Unique Paths II Java
    LeetCode 62. Unique Paths Java
    [LeetCode 241] Different Ways to Add Parentheses Java
    LeetCode 240. Search a 2D Matrix II Java
    LeetCode 215. Kth Largest Element in an Array Java
    LeetCode 169. Majority Element Java
    LeetCode 53. Maximum Subarray Java
  • 原文地址:https://www.cnblogs.com/liziczh/p/9318456.html
Copyright © 2020-2023  润新知