jQuery day01

1. 什么是: jQuery 

  (1). 第三方开发的: 必须下载才能用

  (2). 执行DOM操作的: jQuery还是执行DOM的增删改查+事件绑定操作。学习jQuery只是学习DOM的延续而已。

  (3). 极简化的: jQuery对DOM操作的每一步都进行了简化。

  (4). 函数库: jQuery中都是用函数来解决一切问题。

2. 为什么: 2个原因:

  (1). 简单

  (2). 解决了大部分浏览器兼容性问题。只要jQuery让用的,几乎都没有兼容性问题。

3. 何时: 从前很多旧的项目和框架都是用jQuery开发的!

4. 问题: 

  (1). 只有PC端,没有移动端。

  (2). 简化的不彻底: 只对DOM操作的每一步进行了简化,但是没有减少步骤!

二. 如何使用jQuery:

1. 官网: jquery.com

2. 下载: 版本: 

  1.x 兼容旧浏览器

    jquery-1.11.3.js

    未压缩版: 带有完备的注释、代码格式,以及见名知意的变量名。——可读性好,适合学习和开发之用。——体积大,不便于快速下载运行,不适合生产环境

    压缩版: 删除所有注释和代码格式,极简化了变量名。——体积小,便于快速下载运行,适合生产环境。——可读性差,不适合学习和开发之用。

  2.x 不再兼容旧浏览器,但是,暂时也不兼容ES6

  3.x 才开始支持ES6

3. 在页面中引入jquery: 2种: 

  (1). 将jquery.js文件下载到项目本地文件夹,用相对路径引入

  <script src="js/jquery-1.11.3.js">

  问题: 文件只保存在一个位置的服务器上。距离服务器近的用户访问当然快。但是,距离服务器很远的用户,访问就会慢。

  (2). 引入CDN网络中的jquery.js文件

  a. 什么是CDN网络: 内容分发网络。

  b. 原理: 

    1). CDN网络可在全球范围共享一个文件

    2). 任意地区的一个客户端想用CDN网络中的文件时,CDN网络都会从距离这个客户端网络最优的服务器下载资源给客户端。

jQuery day01

 

  c.如何: 官网->下载->CDN->自己想用的链接地址: 

   <script src="官网提供的CDN网址">

   比如:微软提供的cdn网址: 

   <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.js">

示例:

<!DOCTYPE html>

<html>

<head lang="en">

  <meta charset="UTF-8">

  <title></title>

</head>

<body>

  <h1>jQuery/$工厂函数</h1>

  <button id="btn1">click me(0)</button>

  <script>

    //DOM 4步

    //1. 查找触发事件的元素

    //本例中: id为btn1的按钮触发事件

    var btn=document.getElementById("btn1");

    //2. 绑定事件处理函数

    btn.οnclick=function(){

      //3. 查找要修改的元素

      //本例中: 就改this

      //4. 修改元素

      //4.1 先取出当前按钮的内容中()中的数字,转为整数

      var n=parseInt(

        this.innerHTML //click me(1123)

                       //0123456789   -1 

                       //         |← →|

            .slice(               9 , -1)

      );

      //4.2 将数字+1

      n++;

      //4.3 再将数字拼接回原按钮的内容中

      this.innerHTML=`click me(${n})`;

      //            格式与旧内容必须完全一致

    }

  </script>

</body>

</html>

运行结果: 

jQuery day01

 

 

三. jQuery原理: 

1. 引入jquery.js文件后,是在内存中新增了一种类型: 

  (1). 构造函数: 创建该类型的子对象

  (2). 原型对象: 集中保管该类型所有子对象共用的方法

2. 只要想使用jQuery家简化版函数,必须先创建jQuery类型的子对象。

  (1). 标准: var jq子对象=new jQuery(选择器);

  (2). 简写: var jq子对象=jQuery(选择器)

  (3). 更简化: var jq子对象=$(选择器)  //$=jQuery

  (4). 强调: 只有jq子对象才能访问jQuery原型对象中的简化版共有方法。而原生的DOM元素对象,无权使用jQuery原型对象中的简化版函数。

  (5). 约定俗成: 凡是用$创建的jquery类型的子对象,命名时都要以$开头!以此和原生DOM家的元素对象区分。

3. 问题: jQuery家所有的函数几乎都是为了操作DOM元素而定义的。所以,调用jQuery函数都要操作DOM元素。可是,DOM元素从哪儿来?

   解决: jQuery要求,每次创建jQuery子对象时,必须提供一个css选择器作为参数。jQuery构造函数会自动用选择器去DOM树中查找原生的DOM元素。取回来保存进新创建的jq子对象中。

4. 问题: 将来调用简化版函数时,使用jq子对象调用的。不是用原生的DOM元素调用的!简化版函数的操作,能不能作用到内部保存的原生的DOM元素上?

  解决: 每当对jq子对象调用简化版函数时,简化版函数内部封装的都是原生的DOM操作。所以调简化版函数等效于调用原生的方法和属性,并最终作用到内部保存的元素对象上。

5. 问题: jQuery中事件处理函数里的this。

  (1). 因为.click会被翻译为.onclick=function(){ ... },再执行。所以.click()中的this,其实最终还是.onclick里的this。与DOM中的this完全一样!都指向正在点击的当前原生DOM元素对象本身。所以,this无权使用jQuery家简化版函数。

  (2). 解决: 今后,jquery中所有事件处理函数中的this都必须用$()包裹起来,形成一个jq子对象,才能有权利使用jQuery家的简化版函数。

jQuery day01

 

上一篇:初识 jQuery


下一篇:前端的心路历程