jQuery

jQuery 的基本设计思想和主要用法:“选择某个网页元素,然后对其进行某种操作”。

[ jQuery 1.12.1 速查手册?! ] 这是它区别于其他 JS 库的根本特点。


引入 jQuery文件 + 复制代码而已( 引入插件的文件、添加加载事件 ... )

[ jQueryUI ] 引入 jQueryUI 样式文件 _ 引入 jQuery _ 引入 jQueryUI 的 JS 文件 _ 使用 jQueryUI 的功能


选择元素(选择器)

使用 jQuery 的第一步,往往是将一个选择表达式放进构造函数 jQuery() 中,简写为 $(),从而得到被选中的元素。


[1] 模拟 CSS 选择器

[2] 特有表达式选择

[3] 多种筛选方法


写法

[1] 方法函数化:原生 JS 中,赋值操作符用的比较多。而,在 jQuery 中,多使用函数传参的方式,即方法函数化。


[2] 链式操作:选中网页元素以后,可以对它进行一系列操作,并且所有操作可以连接在一起,以链条的形式写出来。

它的原理在于:每一步的 jQuery 操作,返回的都是一个 jQuery 对象,所以不同操作可以连在一起。

也就是说,多行代码合并为一行代码,前提是要认清此行代码发挥的是不是对象,是对象才能进行链式编程。

jQuery 还提供了 .end() 方法,使得结果集可以后退一步。


[3] 取赋值合体:操作网页元素,最常见的需求是取得它们的值,或者对它们进行赋值。jQuery 使用同一个函数来完成取值(getter)和赋值(setter),即"取值器"与"赋值器"合一。到底是取值还是赋值,由函数的参数决定。

常见的取值和赋值函数如下:

需注意的是,如果结果集包含多个元素,那么赋值的时候,将对其中所有的元素赋值;取值的时候,则是只取出第一个元素的值。.text() 例外,它取出所有元素的 text 内容。


 

 

 

[ JS 库 ] 一个普通的 JS 文件,里面封装了很多兼容性的函数,可以在不同的浏览器下运用、执行。

普通 JS 的缺点:每种控件的操作方式不统一,不同浏览器下有区别,要编写跨浏览器的程序非常麻烦。

因此,出现了很多 JS 的封装库。如,Prototype、YUI、Dojo、ExtJS、jQuery 等。

这些库对 JS 进行了封装,简化了开发。也就是说,这些库是对 JS 的封装,内部都是用 JS 来实现的。


jQuery 简介

现阶段,jQuery 可能已经不再是人们话题的焦点,人们更多的是在讨论 Vue、React、Angular。但,jQuery 的使用量依然十分的广泛,据统计,它仍然是目前使用率最高的 JS 库。它简化了 JS 的复杂操作,不需要再去关心兼容性,提供了大量的实用方法。jQuery 的简单易用,使其常常成为人们在过去不学习原生 JS 的一个借口 ...


[1] 定义:jQuery 是 JS 语法写的一些函数类,内部仍调用 JS 实现,所以并不是替代 JS(而是进阶、辅助工具)

使用 jQuery 编写 jQuery 的扩展插件等仍然需要 JS 技术,jQuery 本身就是一堆 JS 函数。

jQuery 是 JS 库(封装了很多 JS 代码的一个 JS 文件,就是一个库)中的一种。

即,jQuery 是用 JS 编写的函数库,有些功能 jQuery 没有封装,则还需要通过自己写 JS 来实现。


[2] 为什么要学习 jQuery ?

  • DOM 中的一个简单的功能可能需要大量的代码;
  • DOM 中兼容的问题很多;
  • DOM 中代码的容错性很差;
  • DOM 中 window.onload 只能有一个
  • ......

[ 好处 ]  jQuery 的特点? Write Less, Do More.

很好的解决了不同浏览器的 JS 兼容问题(IE 6.0+、FF 2+、Safari 3.0+、Opera 9.0+、Chrome);CSS 还是有问题的;对于不同控件具有统一的操作方式。

体积小(几十 KB)、使用简单方便、链式编程、隐式迭代、插件丰富(缺什么,找什么)、开源、免费。

让编写 JS 程序更简单、更强大!学习 jQuery 不必过多考虑兼容问题。


[ 拓展 - jQuery 版本 ]

jQuery 从 2.0 版本开始不再支持 IE8- 浏览器,且去掉了一些过时的 API,从而使体积更小,运行速率更高。

所以,如果有兼容 IE8- 浏览器的需求,需要使用 jQuery1.* 版本。


jQuery 的引入方式

在 HTML 中引入 jQuery 插件的方法有以下两种:

[1] CDN 引入:在 head 标签中加入下列代码。

[2] 本地引入( 要求本地有 jquery.js,官网 www.jquery.com;另,min 版在功能上没有区别,只是体积更小)


jQuery 中的顶级对象

BOM 中的顶级对象:window,浏览器和页面中的所有东西都是 window 的;

DOM 中的顶级对象:document。


[1] jQuery 中的顶级对象:jQuery,一般用 $ 符号来代替。

如果想要使用 jQuery 中的属性和方法,那么需要通过 jQuery.属性 或 jQuery.方法来实现。

简单写法:$.属性 或 $.方法


与 jQuery 对象相对应的就是 DOM 对象,DOM 对象其实就是 DOM 元素节点对象。

如果通过 DOM 获取,则为 DOM 对象;如果通过 $ 或 jQuery 方式获取,则为 jQuery 对象。

需要注意的是,jQuery 对象无法使用 DOM 对象的方法,DOM 对象也无法使用 jQuery 对象的方法。


[ 判断共存 ] 一般的,DOM 对象在使用之前需要判断存在,防止出错。

对于 jQuery 对象来说,因为 $() 获取到的永远是对象,即使网页上没有该元素。所以不能采用下面方式判断

应该根据获取到元素的长度来判断或转换成 DOM 对象来判断:


[2] jQuery 对象与 DOM 对象的相互转换

  • DOM 转 jQuery 对象

对于一个 jQuery 对象,只需要用 $() 把DOM对象包装起来,就可以获得一个 jQuery 对象。

  • jQuery 转 DOM 对象

jQuery 是一个类数组对象,可以通过 [index] 或 get(index) 的方法得到相应的 DOM 对象。


为什么把 DOM 对象转 jQuery 对象,又为什么把 jQuery 对象转 DOM 对象?

  • DOM 操作较麻烦(兼容,一个功能需要大量代码) — 转 jQuery对象,操作简单,不需要写兼容。
  • jQuery 操作中,有些兼容未封装在 jQuery 中 — 转 DOM 对象,通过原生的 JS 代码实现功能;若之后都解决了,想简单的写代码操作内容,再转回 jQuery 对象。