JQuery

01. 概念

  jQuery是一个快速、简洁的JavaScript框架,是一个优秀的JavaScript代码库(框架)于2006年1月由John Resig发布。

  它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

02. JQuery 的版本及区别

  当前JQuery有三个大版本

  1.X : 兼容ie678, 使用最为广泛,官方只做BUG维护。

     功能不再增加,因此一般项目来说,使用1.x版本就可以了;

    最终版本为: 1.12.4 (2016-05-20);

  2.X : 不兼容ie678,很少有人使用,官方只做BUG维护;

      功能不再新增.如果不考虑兼容低版本的浏览器可以使用;

      最终版本: 2.2.4 (2016-05-20)

  3.X : 不兼容ie678, 只支持最新的浏览器,除非特殊要求,

      一般不会使用3.X版本,很多老的JQuery插件不支持这个版本;

      目前该版本是官方主要更新维护的版本,

  ------------

  jquery-xxx.js: 开发版本,给程序员看的;  有良好的缩进,便于人去查看;

  jquery-xxx.min.js : 生产版本,给程序使用的; 代码间没有缩进; 体积小一些,便于加载;    

03. JQuery对象和 JS对象 区别与转换

  a. JQuery对象在操作时,更加方便;

  b. JQuery对象和JS对象方法不通用;

  c. JQuery对象与JS对象的相互转换

    *  jq --> js :  jq对象[索引]  或者  jq对象.get(索引);

    *  js --> jq :  $(js对象) 

04. 选择器的使用比对

  a. 对象的选择:

    var el = document.getElementById("div1");

    var $div1 = $("#div1");

  b. 事件绑定

   

 

   c. 入口函数

    

 

  d. 样式控制

    

 

   f. 基本选择器

    > 标签选择器(元素选择器)

      1. $("html标签名称") : 获得所有匹配标签名称的元素;

      2. $("#id属性值")      : 获得与指定id属性值匹配的元素;

      3. $(".class属性值")  : 获得与指定的class属性值匹配的元素;

    > 层级选择器

      1. $(" A B") : 选择A元素下的所有B元素;(不管有多少层级,都会选择);

      2. $(" A > B") : 选择A元素下的所有B 子元素; (只选择A子元素中的B,子元素下的子元素,不会被选择)

    > 属性选择器

        $("A[属性名]") : 选择带有指定属性名称的全部A元素;

        $("A[属性名 = ‘属性值']");  : 选择指定属性名=值   的全部A元素;

        $("A[属性名 != '属性值']")  : 选择没有属性名 和 属性名不等于属性值 的全部A元素;

        $("A[属性名^='内容']") : 选择属性名以 "内容" 开始的全部A元素;

        $("A[属性名$='内容']") : 选择属性名以 "内容" 结束的全部A元素;  

        $("A[属性名*='内容']") : 选择属性名包含 "内容" 的全部A元素; 

        $("A[属性名='值'][..]") : 包含多个属性条件的A元素; (多个属性条件遵循上述规则); 

    > 过滤选择器

        1.首元素选择器:  :first   获得选择的元素中的第一个;

        2. 尾元素选择器:  :last   获得选择的元素中的最后一个;

        3. 非元素选择器:    :not(selector) 不是指定selector匹配的其它元素;

        4. 偶数选择器:        :even   偶数,从0开始;

        5. 奇数选择器:        :odd     奇数,从0开始;

        6.等于索引选择器:  :eq(索引)  获得选择元素中指定索引的元素;

        7.大于索引选择器:  :gt(索引)  获得选择元素中索引大于指定索引的元素;

        8.小于索引选择器:  :lt(索引)  获得选择元素中索引小于指定索引的元素;  

        9. 标题选择器:      :header   获得标题(h1~h6) 元素,固定写法;

    > 表单过滤选择器

        1. 可用元素选择器:  :enabled    获得可用的元素;

        2. 不可用元素选择器: :disabled  获得不可用的元素;

        3. 选中选择器:  :checked   获得单选、复选框选中的元素;

        4. 选中选择器:  :selected   获得下拉框选中中的元素;

05. DOM操作

  a. 内容操作

    1. html();   获取/设置 元素的标签体内容;  

    2. text();  获取/设置 元素的标签体中的纯文本内容;  设置时,原的的标签体内的标签都没了;

    3. val();  获取/设置元素的value属性值;

  b.属性操作

    1. 通用属性操作

      > attr() : 获取/设置元素的属性;

      > removeAttr(); 删除元素的属性;

      > prop(): 获取/设置元素的属性;

      > removeProp(); 删除元素的属性

      ** 如果操作的是元素的固有属性,则建议使用 prop;

      ** 如果操作的是自定义的属性,则建议使用 attr;

      ** 有些固有的属性,如 selected, checked 用 attr 有时候获取不到,所以还是要遵循一下上面的规则

    2. 对 class 属性操作

      > addClass();  添加一个class属性;

      > removeClass(); 删除一个class属性;

      > toggleClass(): 切换class属性;  如果存在指定的Class属性则删除,如果不存在则添加 

      ----------

      > css(); 可以配置 Style 样式;

  c. CRUD操作

    1. append(): 父元素将子元素添加到尾部

      * A.Append(B) : 将B元素添加到A元素内部,并且在最后面;

    2. appendTo(): 子元素将自身添加到父元素的尾部

      * B.AppendTo(A): 将B元素添加到A元素内部,并且在最后面;

    3. prepend(): 父元素将子元素添加到第一个

      * A.prepend(B):  将B元素添加到A元素内部,并且在最开始;

    4. prependTo(): 子元素将自身添加到父元素内部,并且在最开始;

      * B.prependTo(A): 将B元素添加到A元素内部,并且在最开始;

 

    5. after() : 将兄弟元素添加到自身后面;

      * A.after(B):  将B元素添加到A元素的后面,A,B为兄弟关系;

    6. insertAfter(): 将自身插入到兄弟元素的后面;

      * B.insertAfter(A): B元素将自身插入到元素A的后面;

    7. before(): 将兄弟元素添加到自身前面

      * A.before(B): 将B元素添加到A的元素的前面,A,B为兄弟关系;

    8. insertBefore(): 将自身插入到兄弟元素的前面

      * B.insertBefore(A): 将B元素插入到A元素前面;

 

    9. remove(): 移除元素;  将自身从父元素中移除

    10. empty(); 清空元素的所有后代元素;

      * A.empty();  将对象A的所有后面元素全部清理掉,但是保留A元素及其属性节点;

    11. clone(): 将元素自身复制一份并返回克隆后的对象

      * A.clone();  返回一个A的复制品;

06. 动画

  a. 三种显示和隐藏的方式 方式

    1. 默认显示和隐藏方式

      * show([speed,[easing],[fn]]);   

      * hide([speed,[easing],[fn]]);     

      * toggle([speed,[easing],[fn]]);

    2. 滑动显示和隐藏方式

      * slideDown([speed,[easing],[fn]]);

      * slideUp([speed,[easing],[fn]]);

      * slideToggle([speed,[easing],[fn]]);

    3. 淡入淡出显示和隐藏

      * fadeIn([speed,[easing],[fn]]);

      * fadeOut([speed,[easing],[fn]]);

      * fadeToggle([speed,[easing],[fn]]);

    ------------------------------------------------

    参数说明:

      >  speed: 动画的速度,三个预定义的值:  "slow", "normal", "fast",   也可以直接输入毫秒值:  2000; 表示2秒;

      >  easing: 用来指定切换效果; 默认是 "swing", 可用参数: "linear"

          * swing: 先慢,中间快,再慢;

          * linear: 动画执行速度是匀速的;

      > fn: 在动画完成时执行的函数; 每个元素执行一次;

 

07. 循环

  a. JS中的循环

    

 

  b. jq对象的each()循环  :  此方法要求 对象必须为 JQuery 对象,否则实现不了

    

 

   c. $.each(obj, function(){ });

    本方法对 obj 没有强制要求JQuery对象,也可以是常规对象;

     

 

   d. for ( xx of yy) 循环

    

 

 

08. 事件绑定

  a. jquery标准的绑定方式:

    * jq对象.事件方法(function (){ ... });

    * 如果调用事件方法不传递回调函数,则会触发浏览器默认行为;

      >> 表单对象.submit();   --> 将让表单提交;

  b. on("事件名称", 回调函数) / off("事件名称") 

    * 如果 off说方法不传递任何参数,则将组件上的所有事件全部解绑;

  c. 事件切换:

    * jq对象.toggle(回调事件1, 回调事件2,...); 

    * 注意:  1.9版本 .toggle() 方法被删除,如果在高版本需要使用这个功能,则需要加入 JQuery Migrate 插件;

        <script src="../js/jquery-migrate-1.0.0.js" type="text/javascript" charset="utf-8></script>

 09. 插件: 增强JQuery的功能

  1. $.fn.extend(object): 增强 jq对象的功能;

  2. $.extend(object): 增强 jquery 自身的功能;

    

 

posted @ 2022-04-05 16:09  耗喜天涯  阅读(80)  评论(0编辑  收藏  举报