前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
  • JavaScript Part 1

    • Ajax总结篇
    • Canvas 绘制八大行星
    • DOM编程之API学习总结篇
    • JavaScript事件机制
    • JavaScript代码片段100个
    • JavaScript作用域分析总结
    • JavaScript原型链回顾
    • JavaScript及jQuery中的各种宽高属性图解
    • JavaScript工程项目的一系列最佳实践
    • JavaScript常用API合集
    • JavaScript数组、字符串、对象常用方法
    • JavaScript数组方法总结篇
    • JavaScript深浅拷贝
    • JavaScript运动框架之速度时间版本
    • JavaScript运行机制Event Loop
    • JavaScript防抖节流原理
    • Javascript中的复制粘贴功能
    • Javascript数组详解
    • OOP之原型与原型链
    • Object.defineProperty详解
    • V8源码浅析JS数组常见方法
    • await 在 forEach 中不生效解决方案
    • iframe+表单跨域提交POST请求
    • javascript笔记总结篇
    • 业务中处理数据结构常用的JS方法
    • 作用域
    • 你真的掌握变量和类型了吗
    • 前后端分离之数据Mock
    • 原型与原型链
    • 原生JS补给(上)
    • 如何写出一个惊艳面试官的深拷贝
    • 带你填一些JS容易出错的坑
    • 彻底弄懂 JavaScript 执行机制
    • 执行上下文 执行栈
    • 正则回顾总结
    • 正则基础知识
    • 正则完整篇
    • 正则表达式
    • 浅析Promise原理
    • 浅谈JavaScript中的异步处理
    • 深拷贝 vs 浅拷贝
    • 聊一聊typeof instanceof 实现原理.
    • 聊一聊闭包
    • 高阶函数map reduce filter
  • JavaScript Part 2

  • CSS

  • HTML

  • Jquery

  • ES6

  • 小程序

  • Vue

  • React

  • 深入React

  • React Native

  • NodeJS

  • Angular

  • TypeScript

  • Webpack

  • 浏览器

  • 移动端

  • 前端工程化

  • Electron

  • HTTP

  • Nginx

  • Linux

  • 数据结构与算法

  • LeetCode算法题

  • 综合

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

jQuery笔记总结篇|博客系列

首先,来了解一下jQuery学习的整体思路

  • XMind源文件提供参考下载

# 第一节 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对象)
    • 如果第一个参数是字符串,第二个是element dom对象的话,那么就是在element这个dom对象里面寻找选择器对应的元素并且代理 $("li",$DOM对象)
  • 代理模式以及代理内存结构

代理内存结构1

代理内存结构2

# 第二节 选择器


  • 来回顾一下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 选取每个元素的最后一个子元素 集合元素

← jQuery的deferred对象详解ECMAScript6回顾 →

fe
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
  • JavaScript Part 1

    • Ajax总结篇
    • Canvas 绘制八大行星
    • DOM编程之API学习总结篇
    • JavaScript事件机制
    • JavaScript代码片段100个
    • JavaScript作用域分析总结
    • JavaScript原型链回顾
    • JavaScript及jQuery中的各种宽高属性图解
    • JavaScript工程项目的一系列最佳实践
    • JavaScript常用API合集
    • JavaScript数组、字符串、对象常用方法
    • JavaScript数组方法总结篇
    • JavaScript深浅拷贝
    • JavaScript运动框架之速度时间版本
    • JavaScript运行机制Event Loop
    • JavaScript防抖节流原理
    • Javascript中的复制粘贴功能
    • Javascript数组详解
    • OOP之原型与原型链
    • Object.defineProperty详解
    • V8源码浅析JS数组常见方法
    • await 在 forEach 中不生效解决方案
    • iframe+表单跨域提交POST请求
    • javascript笔记总结篇
    • 业务中处理数据结构常用的JS方法
    • 作用域
    • 你真的掌握变量和类型了吗
    • 前后端分离之数据Mock
    • 原型与原型链
    • 原生JS补给(上)
    • 如何写出一个惊艳面试官的深拷贝
    • 带你填一些JS容易出错的坑
    • 彻底弄懂 JavaScript 执行机制
    • 执行上下文 执行栈
    • 正则回顾总结
    • 正则基础知识
    • 正则完整篇
    • 正则表达式
    • 浅析Promise原理
    • 浅谈JavaScript中的异步处理
    • 深拷贝 vs 浅拷贝
    • 聊一聊typeof instanceof 实现原理.
    • 聊一聊闭包
    • 高阶函数map reduce filter
  • JavaScript Part 2

  • CSS

  • HTML

  • Jquery

  • ES6

  • 小程序

  • Vue

  • React

  • 深入React

  • React Native

  • NodeJS

  • Angular

  • TypeScript

  • Webpack

  • 浏览器

  • 移动端

  • 前端工程化

  • Electron

  • HTTP

  • Nginx

  • Linux

  • 数据结构与算法

  • LeetCode算法题

  • 综合