jQuery知识框架

news2025/5/15 12:03:48

一、jQuery 基础

  1. 核心概念

    • $ 或 jQuery:全局函数,用于选择元素或创建DOM对象。

    • 链式调用:多数方法返回jQuery对象,支持连续操作。

    • 文档就绪事件

      $(document).ready(function() { /* 代码 */ });
      // 简写
      $(function() { /* 代码 */ });

  2. 选择器

    • 基础选择器

      • $("#id")$(".class")$("tag")$("*")(通配符)。

    • 层级选择器

      • $("parent > child")(子元素)、$("ancestor descendant")(后代)。

    • 过滤选择器

      • :first:last:even:odd:eq(index):not(selector)

    • 属性选择器

      • $("[attr]")$("[attr='value']")

  3. DOM 遍历

    • 向上查找parent()parents()closest(selector)

    • 同级查找siblings()next()prev()nextAll()

    • 向下查找children()find(selector)


二、DOM 操作

  1. 内容操作

    • 获取/设置文本:text()text("new text")

    • 获取/设置HTML:html()html("<b>new html</b>")

    • 表单值:val()val("new value")

  2. 属性与CSS

    • 属性操作:

      • attr("name")attr("name", "value")

      • removeAttr("name")

    • CSS操作:

      • css("property")css("property", "value")

      • 添加/移除类:addClass()removeClass()toggleClass()

  3. 节点操作

    • 创建元素:$("<div>New Element</div>")

    • 插入元素:

      • append()prepend()(内部插入)。

      • after()before()(外部插入)。

    • 删除元素:remove()empty()


三、事件处理

  1. 事件绑定

    • 简写方法:click()hover()submit()

    • 通用方法:on("event", handler)(推荐统一使用)。

      $("#btn").on("click", function() { alert("Clicked!"); });
    • 事件解绑:off("event")

  2. 事件委托

    • 动态元素事件绑定:

      $("#parent").on("click", ".child", function() { /* 逻辑 */ });
  3. 常用事件

    • 鼠标事件:clickdblclickmouseentermouseleave

    • 键盘事件:keypresskeyupkeydown

    • 表单事件:submitchangefocusblur


四、动画与效果

  1. 基础动画

    • 显示/隐藏:show()hide()toggle()

    • 淡入淡出:fadeIn()fadeOut()fadeToggle()

    • 滑动效果:slideDown()slideUp()slideToggle()

  2. 自定义动画

    • animate() 方法:

      $("#box").animate({ 
        opacity: 0.5, 
        left: "+=50px" 
      }, 1000);
    • 停止动画:stop()delay()


五、AJAX 与工具方法

  1. AJAX 请求

    • $.ajax()(底层方法):

      $.ajax({
        url: "api/data",
        method: "GET",
        success: function(data) { console.log(data); }
      });
    • 简写方法:

      • $.get(url, callback)$.post(url, data, callback)

      • $.getJSON(url, callback)

  2. 工具函数

    • 数组/对象操作:

      • $.each(array, function(index, value) {})

      • $.extend()(合并对象)。

    • 类型判断:

      • $.isArray()$.isFunction()


六、插件与扩展

  1. 使用插件

    • 引入jQuery插件(如 jQuery UIDataTables):

      <script src="jquery.plugin.js"></script>
  2. 编写插件

    • 扩展jQuery方法:

      (function($) {
        $.fn.myPlugin = function(options) {
          // 插件逻辑
        };
      })(jQuery);

七、性能优化

  1. 选择器优化

    • 缓存jQuery对象:var $el = $("#element");

    • 避免过度嵌套选择器(如 $("div ul li a"))。

  2. 事件优化

    • 使用事件委托代替重复绑定。

    • 移除无用事件监听(off())。

  3. 链式调用

    • 减少DOM查询次数:

      $("#box").css("color", "red").slideDown().fadeIn();

八、兼容性与现代替代

  1. jQuery 与原生JS

    • 对比示例:

      • $("#id") → document.getElementById("id")

      • $.ajax → fetch API。

  2. 现代替代方案

    • 原生JS + querySelector

    • 前端框架(React/Vue)的组件化开发。


学习建议

  1. 快速上手:从DOM操作和事件处理开始实践。

  2. 官方文档:jQuery API。

  3. 逐步过渡:理解jQuery原理后,转向现代JS或框架。

jQuery的核心优势是简化DOM操作和跨浏览器兼容性,适合快速开发传统Web应用,但在现代开发中可结合需求选择是否使用。

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

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

相关文章

Ota++框架学习

一&#xff1a;框架结构 这是一幅展现 Web 应用程序架构的示意图&#xff0c;以下是对图中各部分的详细解释&#xff1a; 外部交互部分 Request&#xff08;请求&#xff09;&#xff1a;位于架构图的左上角&#xff0c;用黄色虚线框表示 。代表来自客户端&#xff08;如浏览器…

Chrome安装最新vue-devtool插件

本vue-devtool版本是官方的 v7.6.8版本&#xff0c;兼容性好、功能齐全且稳定。 操作步骤&#xff1a; 方法一&#xff1a; 打开谷歌浏览器 --> 右上角三个点 --> 扩展程序 --> 管理扩展程序 --> 加载已解压的扩展程序&#xff0c; 然后选择解压后的文件夹即可。…

bfs-最小步数问题

最小步长模型 特征&#xff1a; 主要是解决权值为1且状态为字符串类型的最短路问题&#xff0c;实质上是有向图的最短路问题&#xff0c;可以简化为bfs求最短路问题。 代表题目&#xff1a; acwing 845 八数码问题&#xff1a; 八数码题中由于每次交换的状态是由x进行上下左右…

java----------->代理模式

目录 什么是代理模式&#xff1f; 为什么会有代理模式&#xff1f; 怎么写代理模式&#xff1f; 实现代理模式总共需要三步&#xff1a; 什么是代理模式&#xff1f; 代理模式&#xff1a;给目标对象提供一个代理对象&#xff0c;并且由代理对象控制目标对象的引用 代理就是…

Untiy基础学习(十四)核心系统—物理系统之碰撞检测代码篇 刚体,碰撞体,材质

目录 一、碰撞器&#xff08;Collider&#xff09;与触发器&#xff08;Trigger&#xff09; 二、碰撞检测条件 三、碰撞事件与触发器事件&#xff0c;可以理解为特殊的生命周期函数。 四、讲讲如何选择 ​编辑 五、总结 一、碰撞/触发事件函数对照表 二、Collider 与 …

SAP学习笔记 - 开发08 - Eclipse连接到 BTP Cockpit实例

有关BTP&#xff0c;之前学了一点儿&#xff0c;今天继续学习。 SAP学习笔记 - 开发02 - BTP实操流程&#xff08;账号注册&#xff0c;BTP控制台&#xff0c;BTP集成开发环境搭建&#xff09;_sap btp开发-CSDN博客 如何在Eclipse中连接BTP Cockpit开发环境实例。 1&#xf…

Git的安装和配置(idea中配置Git)

一、Git的下载和安装 前提条件&#xff1a;IntelliJ IDEA 版本是2023.3 &#xff0c;那么配置 Git 时推荐使用 Git 2.40.x 或更高版本 下载地址&#xff1a;CNPM Binaries Mirror 操作&#xff1a;打开链接 → 滚动到页面底部 → 选择2.40.x或更高版本的 .exe 文件&#xf…

【2025版】Spring Boot面试题

文章目录 1. Spring, Spring MVC, SpringBoot是什么关系&#xff1f;2. 谈一谈对Spring IoC的理解3. Component 和 Bean 的区别&#xff1f;4. Autowired 和 Resource 的区别&#xff1f;5. 注入Bean的方法有哪些&#xff1f;6. 为什么Spring 官方推荐构造函数注入&#xff1f;…

火山引擎实时音视频 高代码跑通日志

实时音视频 SDK 概览--实时音视频-火山引擎 什么是实时音视频 火山引擎实时音视频&#xff08;Volcengine Real Time Communication&#xff0c;veRTC&#xff09;提供全球范围内高可靠、高并发、低延时的实时音视频通信能力&#xff0c;实现多种类型的实时交流和互动。 通…

jenkins 启动报错

java.lang.UnsatisfiedLinkError: /opt/application/jdk-17.0.11/lib/libfontmanager.so: libfreetype.so.6: cannot open shared object file: No such file or directory。 解决方案&#xff1a; yum install freetype-devel 安装完成之后重启jenkins。

【合新通信】无人机天线拉远RFOF(射频光纤传输)解决方案

无人机天线拉远RFOF方案通过光纤替代传统射频电缆&#xff0c;实现无人机与地面控制站之间的高保真、低损耗信号传输&#xff0c;尤其适用于高频段&#xff08;如毫米波&#xff09;、远距离或复杂电磁环境下的无人机作业场景。 核心应用场景 军事侦察与电子战 隐蔽部署&…

程序设计语言----软考中级软件设计师(自用学习笔记)

目录 1、解释器和编译器 2、程序的三种控制结构 3、程序中的数据必须具有类型 4、编译、解释程序翻译阶段 5、符号表 6、编译过程 7、上下文无关文法 8、前、中、后缀表达式 9、前、后缀表达式计算 10、语法树中、后序遍历 11、脚本语言和动态语言 12、语法分析方法…

通过SMTP协议实现Linux邮件发送配置指南

一、环境准备与基础配置 1. SMTP服务开通&#xff08;以qq邮箱为例&#xff09; 登录qq邮箱网页端&#xff0c;进入「设置」-「POP3/SMTP/IMAP」 开启「SMTP服务」并获取16位授权码&#xff08;替代邮箱密码使用&#xff09; 记录关键参数&#xff1a; SMTP服务器地址&#…

若依框架页面

1.页面地址 若依管理系统 2.账号和密码 管理员 账号admin 密码admin123 运维 账号yuwei 密码123456 自己搭建的地址方便大家学习&#xff0c;不要攻击哦&#xff0c;谢谢啊

44、私有程序集与共享程序集有什么区别?

私有程序集&#xff08;Private Assembly&#xff09;与共享程序集&#xff08;Shared Assembly&#xff09;是.NET框架中程序集部署的两种不同方式&#xff0c;它们在部署位置、版本控制、访问权限等方面存在显著差异&#xff0c;以下是对二者的详细比较&#xff1a; 1. 部署…

【Java面试题】——this 和 super 的区别

&#x1f381;个人主页&#xff1a;User_芊芊君子 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 &#x1f50d;系列专栏&#xff1a;【Java】内容概括 【前言】 在Java的世界里&#xff0c;this和 super是两个非常重要且容易混淆的关键字。无论是在日常…

CentOS 7 内核升级指南:解决兼容性问题并提升性能

点击上方“程序猿技术大咖”&#xff0c;关注并选择“设为星标” 回复“加群”获取入群讨论资格&#xff01; CentOS 7 默认搭载的 3.10.x 版本内核虽然稳定&#xff0c;但随着硬件和软件技术的快速发展&#xff0c;可能面临以下问题&#xff1a; 硬件兼容性不足&#xff1a;新…

解决 PicGo 上传 GitHub图床及Marp中Github图片编译常见难题指南

[目录] 0.行文概述 1.PicGo图片上传失败 2.*关于在Vscode中Marp图片的编译问题* 3.总结与启示行文概述 写作本文的动机是本人看到了Awesome Marp&#xff0c;发现使用 Markdown \texttt{Markdown} Markdown做PPT若加持一些 CSS , JavaScript \texttt{CSS},\texttt{JavaScript} …

软考 系统架构设计师系列知识点之杂项集萃(59)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之杂项集萃&#xff08;58&#xff09; 第96题 假设关系模式R(U, F)&#xff0c;属性集U{A, B, C}&#xff0c;函数依赖集F{A->B, B->C}。若将其分解为p{R1(U1, F1), R2(U2, F2)&#xff0c;其中U1{A, B}, U2{A, …

python使用matplotlib画图

【README】 plot画图有两种方法&#xff1a;包括 plt.plot(), ax.plot()-画多个子图 &#xff0c;其中ax表示某个坐标轴; 【1】画单个图 import matplotlib # 避免兼容性问题&#xff1a;明确指定 matplotlib 使用兼容的后端&#xff0c;TkAgg 或 Agg matplotlib.use(TkAgg) …