jQuery 知识点复习总览

文章目录

  • jQuery 知识点复习总览
    • 一、jQuery 基础
      • 1. jQuery 简介
      • 2. jQuery 引入
      • 3. jQuery 核心函数
    • 二、选择器
      • 1. 基本选择器
      • 2. 层级选择器
      • 3. 过滤选择器
      • 4. 表单选择器
    • 三、DOM 操作
      • 1. 内容操作
      • 2. 属性操作
      • 3. CSS 操作
      • 4. 元素操作
    • 四、事件处理
      • 1. 事件绑定
      • 2. 事件对象
      • 3. 自定义事件
    • 五、效果与动画
      • 1. 基本效果
      • 2. 自定义动画
      • 3. 动画控制
    • 六、Ajax
      • 1. 基本方法
      • 2. Ajax 设置
      • 3. 全局 Ajax 事件
    • 七、工具方法
      • 1. 数组和对象操作
      • 2. 其他工具方法
    • 八、插件开发
      • 1. 基本模式
      • 2. 最佳实践
    • 九、性能优化
      • 1. 选择器优化
      • 2. DOM 操作优化
      • 3. 事件优化
    • 十、常见问题
      • 1. `$(this)` 与 `this`
      • 2. 链式调用中断
      • 3. 版本兼容
    • 十一、现代替代方案

在这里插入图片描述

jQuery 知识点复习总览

一、jQuery 基础

1. jQuery 简介

  • 轻量级 JavaScript 库
  • 简化 DOM 操作、事件处理、动画和 Ajax
  • 链式调用语法
  • 跨浏览器兼容

2. jQuery 引入

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

3. jQuery 核心函数

  • jQuery()$():选择元素或创建 DOM 元素
  • $(document).ready():DOM 加载完成后执行
$(document).ready(function() {// 代码
});// 简写
$(function() {// 代码
});

二、选择器

1. 基本选择器

  • $("#id"):ID 选择器
  • $(".class"):类选择器
  • $("element"):标签选择器
  • $("*"):所有元素
  • $("selector1, selector2"):多选择器组合

2. 层级选择器

  • $("parent > child"):子元素选择器
  • $("ancestor descendant"):后代选择器
  • $("prev + next"):相邻兄弟选择器
  • $("prev ~ siblings"):后续兄弟选择器

3. 过滤选择器

  • :first / :last
  • :even / :odd
  • :eq(index) / :gt(index) / :lt(index)
  • :not(selector)
  • :contains(text)
  • :has(selector)
  • :hidden / :visible

4. 表单选择器

  • :input
  • :text / :password
  • :radio / :checkbox
  • :submit / :button
  • :enabled / :disabled
  • :checked / :selected

三、DOM 操作

1. 内容操作

  • .html():获取/设置 HTML 内容
  • .text():获取/设置文本内容
  • .val():获取/设置表单元素值

2. 属性操作

  • .attr():获取/设置属性
  • .removeAttr():移除属性
  • .prop():获取/设置 DOM 属性
  • .removeProp():移除 DOM 属性
  • .data():数据存储

3. CSS 操作

  • .css():获取/设置样式
  • .addClass() / .removeClass()
  • .toggleClass()
  • .hasClass()
  • .width() / .height()
  • .innerWidth() / .innerHeight()
  • .outerWidth() / .outerHeight()

4. 元素操作

  • .append() / .appendTo()
  • .prepend() / .prependTo()
  • .after() / .insertAfter()
  • .before() / .insertBefore()
  • .wrap() / .unwrap()
  • .wrapAll() / .wrapInner()
  • .replaceWith() / .replaceAll()
  • .empty() / .remove() / .detach()
  • .clone()

四、事件处理

1. 事件绑定

  • .on():标准事件绑定
  • .off():移除事件
  • .one():一次性事件
  • 快捷方法:
    • .click() / .dblclick()
    • .mouseenter() / .mouseleave()
    • .hover()
    • .focus() / .blur()
    • .keydown() / .keyup()
    • .submit() / .change()

2. 事件对象

  • event.target:触发事件的元素
  • event.currentTarget:绑定事件的元素
  • event.preventDefault():阻止默认行为
  • event.stopPropagation():阻止事件冒泡
  • event.type:事件类型
  • event.which:键盘/鼠标按键

3. 自定义事件

  • .trigger():触发事件
  • .triggerHandler():触发事件但不冒泡

五、效果与动画

1. 基本效果

  • .show() / .hide() / .toggle()
  • .fadeIn() / .fadeOut() / .fadeToggle()
  • .fadeTo():渐变到指定透明度
  • .slideDown() / .slideUp() / .slideToggle()

2. 自定义动画

  • .animate():自定义动画
$("div").animate({left: "250px",opacity: "0.5",height: "toggle"
}, 1000);

3. 动画控制

  • .stop():停止当前动画
  • .delay():延迟执行
  • .finish():完成所有动画

六、Ajax

1. 基本方法

  • $.ajax():底层接口
  • $.get():GET 请求
  • $.post():POST 请求
  • $.getJSON():获取 JSON 数据
  • $.getScript():加载并执行 JS 文件

2. Ajax 设置

  • url:请求地址
  • type:请求方法
  • data:发送数据
  • dataType:预期返回类型
  • success:成功回调
  • error:失败回调
  • complete:完成回调
  • beforeSend:发送前回调
  • timeout:超时设置

3. 全局 Ajax 事件

  • .ajaxStart():Ajax 请求开始时
  • .ajaxStop():Ajax 请求结束时
  • .ajaxComplete():每个 Ajax 请求完成时
  • .ajaxError():Ajax 请求失败时
  • .ajaxSuccess():Ajax 请求成功时

七、工具方法

1. 数组和对象操作

  • $.each():遍历数组或对象
  • $.map():映射数组
  • $.grep():过滤数组
  • $.inArray():查找值在数组中的位置
  • $.merge():合并数组
  • $.unique() / $.uniqueSort():去除重复元素
  • $.extend():合并对象

2. 其他工具方法

  • $.trim():去除字符串两端空格
  • $.isArray() / $.isFunction()
  • $.isNumeric() / $.isEmptyObject()
  • $.type():检测数据类型
  • $.parseJSON():解析 JSON 字符串
  • $.parseHTML():解析 HTML 字符串
  • $.now():当前时间戳

八、插件开发

1. 基本模式

(function($) {$.fn.pluginName = function(options) {// 默认设置const settings = $.extend({// 默认参数}, options);// 插件逻辑return this.each(function() {// 对每个元素执行操作});};
})(jQuery);

2. 最佳实践

  • 保持链式调用
  • 提供默认设置
  • 允许方法调用
  • 命名空间化事件
  • 数据缓存

九、性能优化

1. 选择器优化

  • 尽量使用 ID 选择器
  • 给选择器提供上下文
  • 缓存 jQuery 对象
// 不好
$(".item").css("color", "red");
$(".item").html("Hello");// 好
const $items = $(".item");
$items.css("color", "red");
$items.html("Hello");

2. DOM 操作优化

  • 批量操作 DOM
  • 使用文档片段
  • 分离 DOM 操作和计算

3. 事件优化

  • 使用事件委托
// 不好
$("li").on("click", function() {});// 好
$("ul").on("click", "li", function() {});

十、常见问题

1. $(this)this

  • this 是原生 DOM 元素
  • $(this) 是 jQuery 对象

2. 链式调用中断

  • 某些方法返回非 jQuery 对象(如 .text() 获取值时)

3. 版本兼容

  • 1.x:支持 IE6-8
  • 2.x:不支持 IE6-8
  • 3.x:不支持 IE6-8,更精简

十一、现代替代方案

虽然 jQuery 仍然有用,但现代开发中可以考虑:

  • 原生 JavaScript(ES6+)
  • Vue/React/Angular 等框架
  • Axios 等专门的 Ajax 库
  • Lodash 等工具库

jQuery 仍然是快速开发小型项目或需要广泛浏览器支持的项目的优秀选择。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/919807.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/919807.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

博客系统接口自动化练习

框架图&#xff1a; 详细代码地址&#xff1a;gitee仓库 博客系统接口自动化文档请看文章顶部。

智慧矿山误报率↓83%!陌讯多模态融合算法在矿用设备监控的落地优化

原创声明&#xff1a;本文为原创技术解析文章&#xff0c;核心技术参数与架构设计引用自 “陌讯技术白皮书&#xff08;智慧矿山专项版&#xff09;”&#xff0c;算法部署相关资源适配参考aishop.mosisson.com平台的陌讯视觉算法专项适配包&#xff0c;禁止未经授权的转载与二…

Laravel 使用阿里云OSS S3 协议文件上传

1. 安装 S3 软件包 composer require league/flysystem-aws-s3-v3 "^3.0" --with-all-dependencies2. 配置.env 以阿里云 OSS 地域华东2 上海为例: FILESYSTEM_DISKs3 //设置默认上传到S3AWS_ACCESS_KEY_ID***…

UVM一些不常用的功能

uvm_coreservice_t是什么AI&#xff1a;在 UVM&#xff08;Universal Verification Methodology&#xff09;中&#xff0c;uvm_coreservice_t 是一个核心服务类&#xff0c;它扮演着UVM 框架内部核心服务的 “管理者” 和 “统一入口” 的角色。其主要作用是封装并提供对 UVM …

怎么确定mongodb是不是链接上了?

现有mongosh链接了MongoDB,里面能操作,但是想python进行链接,因为代码需要,现在测试下链接成功了没有。如下: 要确认你的 MongoDB 连接是否成功,可以通过以下方法检查: 1. 使用 list_database_names 方法【测试成功】 python import asyncioasync def test_connecti…

Unity 二进制读写小框架

文章目录前言框架获取与集成使用方法基本配置自动生成序列化方法实战示例技术原理与优势二进制序列化的优势SJBinary的设计特点最佳实践建议适用场景总结前言 在Unity开发过程中&#xff0c;与后台交互时经常需要处理大型数据文件。当遇到一个近2MB的本地JSON文件需要解析为对…

​Kubernetes 详解:云原生时代的容器编排与管理

一 Kubernetes 简介及部署方法 1.1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个阶段&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xf…

Kotlin 中的枚举类 Enum Class

枚举类在 Kotlin 中是非常强大和灵活的工具,可以用于表示一组固定的常量,并且可以包含属性、方法、构造函数和伴生对象。它们在处理状态、选项等场景中非常有用。 1、枚举类的定义 枚举类用于创建具有一组数量有限的可能值的类型。 枚举的每个可能值都称为“枚举常量”。每个…

集成电路学习:什么是K-NN最近邻算法

K-NN:最近邻算法 K-NN,即K-最近邻算法(K-Nearest Neighbor algorithm),是一种基本的监督学习算法,广泛应用于分类和回归问题中。以下是对K-NN算法的详细解析: 一、K-NN算法的基本原理 1、K-NN算法的核心思想是: 对于一个新的数据点,算法会在训练数据集中找到与…

2025最新版mgg格式转MP3,mflac转mp3,mgg格式如何转mp3?

注&#xff1a;需要使用旧版客户端&#xff0c;并需要禁用更新。使用说明内有链接打开软件&#xff0c;可以选择将待转换的歌曲拖入&#xff1b;或者点击添加将mgg或者mflac歌曲拖入点击开始转换等待一会就转换完成&#xff0c;默认转换后的歌曲存在桌面的【转换成功】的文件夹…

嵌入式学习day34-网络-tcp/udp

day33练习&#xff1a;客户端 与 服务器实现一个点对点聊天tcp客户端clifd socketconnect//收 --父进程 //发 --子进程 tcp服务器 listenfd socketbindlistenconnfd accept()//收 -- 父进程 //发 -- 子进程client.c#include "../head.h"int res_fd[1]; // 只需要存…

零知开源——基于STM32F103RBT6与ADXL362三轴加速度计的体感迷宫游戏设计与实现

✔零知IDE 是一个真正属于国人自己的开源软件平台&#xff0c;在开发效率上超越了Arduino平台并且更加容易上手&#xff0c;大大降低了开发难度。零知开源在软件方面提供了完整的学习教程和丰富示例代码&#xff0c;让不懂程序的工程师也能非常轻而易举的搭建电路来创作产品&am…

《Linux 网络编程一:网络编程导论及UDP 服务器的创建与数据接收》

Linux下的网络编程1. 目的实现不同主机之间进程的通信。2. 问题主机之间在物理层面必须互联互通。进程之间在软件层面必须互联互通。IP地址&#xff1a;计算机的软件地址&#xff0c;用于标识计算机设备。MAC地址&#xff1a;计算机的硬件地址&#xff08;固定&#xff09;。网…

排序(数据结构)

比较排序 插入排序&#xff08;斗地主摸牌就是一个插入排序&#xff09; 单纯的插入排序也叫直接插入排序 时间复杂度&#xff1a; 最好O(n)最坏O(n^2) 过程 先写单趟&#xff0c;再写整体 依次比较&#xff0c;如果大于就往后挪动&#xff0c;否则就退出循环&#xff0c;插入数…

【C++组件】Elasticsearch 安装及使用

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;C框架/库 目录&#x1f525; 介绍 &#x1f525; ES 安装 &#x1f98b; 安装 kibana&#x1f98b; ES 客户端的安装&#x1f525; ES 核心概念 &#x1f98b; 索引&#xff08;Index&#xff09;&…

项目:电动车报警器

1.项目需求 点击遥控器A按键&#xff0c;系统进入警戒模式&#xff0c;一旦检测到震动(小偷偷车)&#xff0c;则喇叭发出声响报警&#xff0c;吓退小偷。 点击遥控器B按键&#xff0c;系统退出警戒模式&#xff0c;再怎么摇晃系统都不会报警&#xff0c;否则系统一直发出尖叫&a…

GDSFactory环境配置(PyCharm+Git+KLayout)

1、安装 PyCharm 和 KLayout 安装 PyCharm&#xff08;官网社区版即可&#xff09;和 KLayout&#xff08;官网最新版&#xff09;&#xff0c;这两款软件均开源&#xff0c;安装操作简单&#xff0c;这里不再赘述。&#xff08;注意&#xff1a;PyCharm软件是否安装成功以能否…

STM32 定时器(输出模式)

⚙️ ​一、输出模式总览​STM32定时器的输出比较模式通过比较计数器&#xff08;CNT&#xff09;与捕获/比较寄存器&#xff08;CCRx&#xff09;的值&#xff0c;控制输出引脚&#xff08;OCx&#xff09;的电平状态。六种模式定义如下&#xff1a;​模式宏​​触发动作​&am…

嵌入式硬件篇---手柄

手柄原理&#xff1a;手柄遥控的原理其实可以简单理解为 “信号的发送与接收”&#xff0c;就像两个人用对讲机聊天&#xff0c;一方说话&#xff08;发送信号&#xff09;&#xff0c;另一方听话&#xff08;接收信号&#xff09;&#xff0c;然后根据内容行动。下面用通俗的方…

数据库架构开发知识库体系

摘要面向初创与企业团队&#xff0c;系统梳理数据库与数据平台从采集、传输、存储、处理、服务化到治理与安全的全链路。覆盖 OLTP/OLAP/HTAP、湖仓一体与实时数据栈&#xff0c;结合国内外工具与方法论&#xff0c;给出架构选型、性能优化、可靠性与合规要点&#xff0c;以及可…