jQuery

2021-02-10 08:16

阅读:484

标签:doc   input   bootstra   selected   框架   www   sele   appendto   定义   

正课:

1. 什么是jQuery:

2. 如何使用jQuery:

3. 查找:

 

1. 什么是jQuery:

 jQuery是 第三方开发的  —— 先下载才能使用

          执行DOM操作的 —— 学jQuery依然在学DOM

          极简化的 —— 对DOM API的终极简化

          函数库 —— jQuery中一切用函数来实现

 为什么: 2个原因:

  1. jQuery是DOM操作的终极简化:

    简化了: 增删改查

            事件绑定

            动画

            ajax

  2. 解决了大部分浏览器兼容性问题:

     凡是jQuery让用的都没有兼容性问题:

 何时: 几乎所有项目或框架的底层DOM操作,都是由jQuery实现的

 

2. 如何使用jQuery:

 下载: jquery.com

 版本: 1.x 兼容IE8

      2.x 不再兼容IE8

      3.x 不再兼容IE8,增加了新特性

       1. 运行在严格模式下

       2. 用for of代替了.each()方法

       3. 支持Promise

  如何使用:

   1.先引入jQuery到页面中,再编写自定义js:

    

   2. 只要想使用jQuery简化版API,都要先创建jQuery对象并封装DOM元素对象

      2种:

      1. 用选择器先查找再创建:

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

      2. 如果已经获得DOM元素,可直接封装:

        var $btn1=$(this);

      什么是jQuery对象: 封装DOM元素对象,并提供操作DOM的简化版API 的类数组对象.

      对jQuery对象整体调用API,等效于对内部封装的DOM元素都调用API

 

        jQuery API 三大特性:

        1. 自带遍历效果: 对整个jQuery对象调用一次API,等效于自动对内部所有DOM元素都调用API

        2. 一个函数两用: 即可获取值,又可修改值

     如果调用时,没有给新值,则默认获取

     如果调用时,给了新值,则改为修改

        3. ?

 

3. 查询:

 1. 按选择器查找:  var $elem=$("选择器")

 回顾选择器:

  基本选择器: 5个 同CSS

   #id  element  .class   *   selector1,selector2,...

 

 

正课:

1. 查找

2. 修改

3. 按节点间关系查找

4. 添加/删除/替换/克隆

 

1. 查找:

 回顾:

  层级选择器: 同CSS

   父 后代   父>子    兄+弟    兄~弟

  子元素过滤选择器: 同CSS

   按元素在其父元素中的相对位置选择元素

   下标i从1开始

   :first-child   :last-child     :nth-child(n)

   偶数行: tr:nth-child(2n) //even

  基本过滤选择器: jQuery新增的

   打破父元素的界限,按绝对位置选择元素

   下标i从0开始

   :first/last   :even/odd    :eq/gt/lt(i)

  属性过滤选择器: 同CSS

   [属性名]   [属性名=值]  [属性名^=开头]

   [属性名$=结尾]    [属性名*=内容]   [属性名!=值]

  可见性过滤: jQuery新增

   :hidden 匹配隐藏的元素

     display:none

     visibility: hidden

     opacity:0

    

   :visible 匹配显示的元素

  内容过滤: jQuery新增

   :contains(文本) 匹配元素的内容中包含指定“文本”的元素

   :has(选择器) 匹配包含满足选择器要求的子元素的父元素

   :parent 选择内容非空的元素

   :empty 选择内容为空的元素

  状态过滤: 同CSS

   :enabled  :disabled  :selected    :checked

  表单元素过滤: jQuery新增:

   :input 匹配所有表单元素: input select textarea button

   :[type] 匹配type为指定类型的input元素:

    :text

    :password

    :...

 

2. 修改:

 内容: 3种:

  1. 原始HTML片段: .innerHTML

    $elem.html(["html片段"])  一个函数两用

  2. 纯文本内容: .textContent

    $elem.text(["文本内容"])  一个函数两用

  3. 表单元素的值: .value

    $elem.val(["值"]) 一个函数两用

 属性:

  核心DOM API: $elem.attr("属性名"[,"属性值"]) 一个函数两用

  HTML DOM API: $elem.prop("属性名"[,"属性值"]) 一个函数两用

  1. HTML标准属性:

    2种:

    1. 核心DOM: getAttribute()   setAttribute()

    2. HTML DOM: .属性名        .属性名=值

  2. 状态属性

    1. HTML DOM: .状态属性

  3. 自定义扩展属性:

    1. 核心DOM: getAttribute()   setAttribute()

 问题: 一次只能修改一个属性,如果同时修改多个属性时,代码会很繁琐:

 解决: 同时修改多个属性:

   $elem.attr/prop({

     属性:值,

      ... : ...

   })

 样式:

 

jQuery API 三大特性:

1. 自带遍历效果

2. 一个函数两用

3. 多数函数都返回正在操作的jQuery对象本身

 

正课:

1. 修改

2. 按节点间关系查找

3. 添加/删除/替换/克隆

4. 事件绑定

5. 动画API

 

1. 修改:

 样式:

  $elem.css("css属性"[,值]) //单个数值的属性值不用加单位

      修改样式: elem.style.css属性=值

      获取样式: getComputedStyle()

  .css() 一次只能修改一个css属性。

   如果同时修改多个css属性:

     .css({

       css属性名:值,

         ... : ...

     })

     css属性名必须去横线变驼峰

  问题: 如果同时修改多个css属性,用.css()代码繁琐

  解决: 用操作class来批量修改样式

  


评论


亲,登录后才可以留言!