jQuery笔记总结篇
首先,来了解一下jQuery学习的整体思路
# 第一节 jQuery初步认知
# jQuery概述
-
JQuery概念javascript概念- 基于
Js语言的API和语法组织逻辑,通过内置window和document对象,来操作内存中的DOM元素
- 基于
JQuery概念- 基于
javascript的,同上,提高了代码的效率
- 基于
-
jQuery是什么:- 是一个
javascript代码仓库,我们称之为javascript框架。 - 是一个快速的简洁的
javascript框架,可以简化查询DOM对象、处理事件、制作动画、处理Ajax交互过程。 - 它可以帮我们做什么(有什么优势)
- 轻量级、体积小,使用灵巧(只需引入一个
js文件) - 强大的选择器
- 出色的
DOM操作的封装 - 出色的浏览器兼容性
- 可靠的事件处理机制
- 完善的
Ajax - 链式操作、隐式迭代
- 方便的选择页面元素(模仿
CSS选择器更精确、灵活) - 动态更改页面样式/页面内容(操作
DOM,动态添加、移除样式) - 控制响应事件(动态添加响应事件)
- 提供基本网页特效(提供已封装的网页特效方法)
- 快速实现通信(
ajax) - 易扩展、插件丰富
- 是一个
-
如何引入
JQuery包-
引入本地的
JQuery -
引入
Google在线提供的库文件(稳定可靠高速) -
使用
Google提供的API导入<script type=“text/javascript” src=“jquery.js”></script> -
写第一个
JQUery案例- 解释:在
JQuery库中,$是JQuery的别名,$()等效于就jQuery()
- 解释:在
-
<script type=“text/javascript” src=“”></script>
<script type=“text/javascript”>
$(function(){
alert(“jQuery 你好!”);
});
</script>
@前端进阶之旅: 代码已经复制到剪贴板
- 讲解
$(function(){});-
$是jQuery别名。如$()也可jQuery()这样写,相当于页面初始化函数,当页面加载完毕,会执行jQuery()。 -
希望在做所有事情之前,
JQuery操作DOM文档。必须确保在DOM载入完毕后开始执行,应该用ready事件做处理HTML文档的开始 -
$(document).ready(function(){});- 类似于
js的window.onload事件函数,但是ready事件要先于onload事件执行 window.onload = function(){};
- 类似于
-
为方便开发,
jQuery简化这样的方法,直接用$()表示 -
JQuery的ready事件不等于Js的load:- 执行时机不同:
load需要等外部图片和视频等全部加载才执行。ready是DOM绘制完毕后执行,先与外部文件 - 用法不同:
load只可写一次,ready可以多次
- 执行时机不同:
-
window.onload与$(document).ready()对比
| window.onload | $(document).ready() | |
|---|---|---|
| 执行时机 | 必须等网页中所有内容加载完后(图片)才执行 | 网页中的DOM结构绘制完后就执行,可能DOM元素相关的东西并没有加载完 |
| 编写个数 | 不能同时执行多个 | 能同时执行多个 |
| 简化写法 | 无 | $(document).ready(function(){ //.. });推荐写法: $(function(){ }); |
-
jQuery有哪些功能(API):- 选择器
- 过滤器
- 事件
- 效果
ajax
-
简单的
JQuery选择器:JQuery基本选择器(ID选择器,标签选择器,类选择器,通配选择器和组选择器5种)ID选择器:document.getElementById(id)与$("#id")对比(改变文字大小)—id唯一,返回单个元素- 标签选择器:
document.getElementsByTagName(tagName)与$("tagname")对比—多个标签,返回数组 - 类选择器:
$(".className")–多个classname(改变背景图片) - 通配选择器:
document.getElementsByTagName("*")与$("*")对比—指范围内的所有标签元素 - 组选择器:
$("seletor1,seletor2,seletor3")----无数量限制,用逗号分割
# 初步了解JQuery
JQuery是什么javascript用来干什么的:- 操作
DOM对象 - 动态操作样式
css - 数据访问
- 控制响应事件等
- 操作
jQuery作用一样,只是更加快速简洁
- 如何引用
JQuery
<script type="text/javascript"></script>
写第一个JQUery案例
<script type=“text/javascript” src=“”></script>
<script type=“text/javascript”>
$(function(){
alert(“jQuery 你好!”);
});
</script>
@前端进阶之旅: 代码已经复制到剪贴板
$()讲解$在JQuery库中,$是JQuery的别名,$()等效于就jQuery().$()是JQuery方法,赞可看作是JQuery的选择器,与css选择器相似(可做对比)var jQuery==$ =function(){}$()本质就是一个函数也就是jQuery的核心函数- 只要是
jQuery的对象都这样变量加上一个符号$方便识别:var $div = $("#")
function $(id){
return document.getElementById(id);
}
@前端进阶之旅: 代码已经复制到剪贴板
$()和document是相等的吗
<div id="a" class="aa"></div>
<div id="b" class="aa"></div>
<div id="c" class="aa"></div>
alert(document.getElementById("id") == $("#aa"));//返回结果为false
alert(document.getElementById("id") == $("#aa").get(0));//返回true
@前端进阶之旅: 代码已经复制到剪贴板
-
代理对象
$()jQuery中返回的是代理对象本身jQuery的核心原理是通过选择器找到对应的代理对象jQuery全都是通过方法操作- 样式选择器
$(".className")$(".aa").css("color","green");
- id选择器(“”)
$("#a").css("background-color","#ff0066");
- 标签选择器
$("p").css("color","#cc3366");
- 组选择器
$("#b ul li").size();
-
对象转换(
$(element))- 原生
dom对象和jquery代理对象的相互转换
- 原生
$(传入的原生对象);
//原生对象转化成jQuery对象
var nav = document.getElementById("nav");
var $nav = $(nav);
alert($nav.get(0) == nav);//true
@前端进阶之旅: 代码已经复制到剪贴板
-
检索范围的限制(
$('字符串',element))-
总结:三种写法对比:
-
方式一:不推荐 搜索速度最慢
$("#nav").css();$("#nav li").css();
-
方式二:搜索速度最快 链式操作
$("#nav").css().children().css();
-
方式三:也常用 速度第二快
var $nav = $("#nav").css();$("li",$nav).css();$nav限制了搜索范围 速度快
-
-
-
总结:
$()jquery核心方法的作用和使用场景- 如果是一个字符串参数并且没有标签对(选择器)
$(ul.nav") - 如果是一个字符串参数并且有标签对(创建
html标签)$("<img>")--最终加到DOM树中$xx.append("<img>"); - 如果是传入一个
element dom对象,直接包装为proxy对象返回$(DOM对象) - 如果第一个参数是字符串,第二个是
elementdom对象的话,那么就是在element这个dom对象里面寻找选择器对应的元素并且代理$("li",$DOM对象)
- 如果是一个字符串参数并且没有标签对(选择器)
-
代理模式以及代理内存结构


# 第二节 选择器
- 来回顾一下
CSS常用的选择器
| 选择器 | 语法 | 描述 |
|---|---|---|
| 标签选择器 | E{css规则} |
以文档元素作为选择符 |
ID选择器 |
#ID{css规则} |
ID作为选择符 |
| 类选择器 | E.className{css规则} |
class作为选择符 |
| 群组选择器 | E1,E2,E3{css规则} |
多个选择符应用同样的样式 |
| 后代选择器 | E F{css规则} |
元素E的任意后代元素F |
-
选择器引擎规则(
$('字符串'))-
css选择器的规则- 标签选择器
id选择器- 类选择器
- 混合选择器
-
css3的选择器规则 -
状态和伪类(
:even:odd:first:last:eq(index)) -
属性(
[attr=value])
-
-
层级选择器:通过
DOM的嵌套关系匹配元素jQuery层级选择器----包含选择器、子选择器、相邻选择器、兄弟选择器4种- a.包含选择器:
$("a b")在给定的祖先元素下匹配所有后代元素。(不受层级限制) - b.子选择器:
$("parent > child")在给定的父元素下匹配所有子元素。 - c.相邻选择器:
$("prev + next")匹配所有紧接在prev元素后的next元素。 - d.兄弟选择器:
$("prev ~ siblings")匹配prev元素之后的所有sibling元素。
# 过滤选择器
- 基本过滤选择
| 选择器 | 说明 | 返回 |
|---|---|---|
:first |
匹配找到的第1个元素 | 单个元素 |
:last |
匹配找到的最后一个元素 | 单个元素 |
:eq |
匹配一个给定索引值的元素 | 单个元素 |
:even |
匹配所有索引值为偶数的元素 | 集合元素 |
: odd |
匹配所有索引值为奇数的元素 | 集合元素 |
:gt(index) |
匹配所有大于给定索引值的元素 | 集合元素 |
:lt(index) |
匹配所有小于给定索引值的元素 | 集合元素 |
:not |
去除所有与给定选择器匹配的元素 | 集合元素 |
:animated |
选取当前正在执行动画的所有元素 | 集合元素 |
focus |
选取当前正在获取焦点的元素 | 集合元素 |
- 内容过滤选择器
| 选择器 | 描述 | 返回 |
|---|---|---|
:contains(text) |
选取含有文本内容为text的元素 | 集合元素 |
:empty |
选取不包含子元素获取文本的空元素 | 集合元素 |
:has(selector) |
选择含有选择器所匹配的元素的元素 | 集合元素 |
:parent |
选取含有子元素或者文本的元素 | 集合元素 |
- 可见过滤选择器
| 选择器 | 描述 | 返回 |
|---|---|---|
:hidden |
选择所有不可见的元素 | 集合元素 |
:visible |
选取所有可见的元素 | 集合元素 |
- 属性过滤选择器
| 选择器 | 说明 | 返回 |
|---|---|---|
[attribute] |
选取拥有此属性的元素 | 集合元素 |
[attribute=value] |
选取属性值为value值的元素 |
集合元素 |
[attribue^=value] |
选取属性的值以value开始的元素 |
集合元素 |
[attribue$=value] |
选取属性的值以value结束的元素 |
集合元素 |
- 子元素过滤选择器
| 选择器 | 说明 | 返回 |
|---|---|---|
:nth-child(index/even/odd) |
选取每个父元素下的第index个子元素或者奇偶元素(index从1算起) |
集合元素 |
:first-child |
选取每个元素的第一个子元素 | 集合元素 |
:last-child |
选取每个元素的最后一个子元素 | 集合元素 |
- 表单选择器
# 第三节 选择器优化
# 第四节 代理对象属性和样式操作

# 回顾上节
滑动