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
英文地址,請注明出處:http://en.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;以及可…