JS基礎4—jQuery

jQuery常用內容

  • jQuery 介紹
    • jQuery 獲取方式
      • 基本選擇器 (最常用)
      • 層級選擇器 (基于元素間關系)
      • 過濾選擇器 (基于特定條件)
    • jQuery事件綁定
    • jQuery 方法調用
      • jQuery遍歷
      • jQuery 獲取與設置
      • jQuery 添加與刪除
      • jQuery CSS 類
      • jQuery - AJAX
  • 總結

jQuery 介紹

jQuery 是一個輕量級、快速且功能豐富的 JavaScript 庫。它的核心目標是讓開發者能夠更容易地在網站上使用 JavaScript 進行開發。簡單來說,jQuery 是 JavaScript 的一個工具包。它提供了一套更簡單、更一致的語法和函數,讓你用更少的代碼完成原本需要寫很多行原生 JavaScript 才能實現的任務,尤其是在處理以下方面時特別方便:

  • 操作 HTML 元素 (DOM 操作):輕松地查找、選擇、修改、添加、刪除 HTML 元素。
  • 處理事件:更簡潔地為元素添加點擊、鼠標懸停、鍵盤按下等事件監聽器。
  • 實現動畫和特效:內置了淡入淡出、滑動、自定義動畫等功能。
    簡化 AJAX:極大地簡化了與服務器進行異步通信(發送和接收數據而不刷新整個頁面)的過程。
  • 跨瀏覽器兼容性:這是 jQuery 早期最重要的價值之一! 它封裝了大量的代碼來處理不同瀏覽器(尤其是舊版 IE)之間的 JavaScript 實現差異。開發者只需要使用 jQuery 的方法,jQuery 內部會確保這些方法在各種主流瀏覽器上都能正常工作,省去了開發者自己處理兼容性問題的麻煩。

jQuery 語法是通過選取 HTML 元素,并對選取的元素執行某些操作。
基礎語法: $(selector).action()
美元符號定義 jQuery,選擇符(selector)“查詢"和"查找” HTML 元素,jQuery 的 action() 執行對元素的操作

jQuery 獲取方式

jQuery 選擇器允許您對 HTML 元素組或單個元素進行操作,jQuery 選擇器基于元素的 id、類、類型、屬性、屬性值等"查找"(或選擇)HTML 元素。 它基于已經存在的 CSS 選擇器,除此之外,它還有一些自定義的選擇器。

jQuery 中所有選擇器都以美元符號開頭:$(),以下是 jQuery 選擇器的主要類型和使用方式。

基本選擇器 (最常用)

  1. 元素選擇器 ('tagName'):

    • 選擇所有指定標簽的元素。
    • 示例:$('p') - 選擇頁面中所有 <p> 元素,$('div') - 選擇所有 <div> 元素。
  2. ID 選擇器 ('#id'):

    • 選擇具有指定 id 屬性的單個元素(頁面中 id 應是唯一的)。
    • 示例:$('#myHeader') - 選擇 id="myHeader" 的元素。
  3. 類選擇器 ('.className'):

    • 選擇所有具有指定 class 屬性的元素。
    • 示例:$('.important') - 選擇所有 class="important" 的元素,$('p.highlight') - 選擇所有 class="highlight"<p> 元素。
  4. 通配符選擇器 ('*'):

    • 選擇頁面中的所有元素。
    • 示例:$('*') - 選擇整個文檔中的所有元素(謹慎使用,性能開銷大)。
  5. 并集選擇器 ('selector1, selector2, selectorN'):

    • 選擇所有匹配任意一個選擇器的元素(取并集)。
    • 示例:$('h1, h2, h3') - 選擇所有 <h1>, <h2>, <h3> 元素,$('div.main, p.intro') - 選擇所有 class="main"<div> 和所有 class="intro"<p> 元素。

層級選擇器 (基于元素間關系)

  1. 后代選擇器 ('ancestor descendant'):

    • 選擇指定祖先元素內部的所有匹配后代元素(無論嵌套多深)。
    • 示例:$('div p') - 選擇所有在 <div> 元素內部的 <p> 元素(包括嵌套在子元素里的)。
  2. 子元素選擇器 ('parent > child'):

    • 選擇指定父元素下的直接子元素(僅第一層)。
    • 示例:$('ul > li') - 選擇所有作為 <ul> 直接子元素<li> 元素(不會選擇嵌套在 <li> 里的 <ul><li>)。
  3. 相鄰兄弟選擇器 ('prev + next'):

    • 選擇緊接在 prev 元素之后的下一個同輩 next 元素。
    • 示例:$('h1 + p') - 選擇緊跟在 <h1> 后面的第一個 <p> 元素。
  4. 一般兄弟選擇器 ('prev ~ siblings'):

    • 選擇 prev 元素之后的所有同輩 siblings 元素(直到遇到下一個 prev)。
    • 示例:$('h2 ~ p') - 選擇所有在 <h2> 元素后面且與它同級的 <p> 元素(只要在同一個父元素下,且在 h2 之后)。

過濾選擇器 (基于特定條件)

  • 通常以 : 開頭,附加在基本選擇器后面,用于進一步篩選結果集。可以組合使用。
  1. 基本過濾:

    • :first - 選擇匹配元素集合中的第一個元素。$('p:first')
    • :last - 選擇匹配元素集合中的最后一個元素。$('p:last')
    • :even - 選擇索引值為偶數的元素(索引從 0 開始)。$('tr:even')
    • :odd - 選擇索引值為奇數的元素(索引從 0 開始)。$('tr:odd')
    • :eq(index) - 選擇索引等于 index 的元素。$('li:eq(2)') (選擇第三個 <li>)
    • :gt(index) - 選擇索引大于 index 的元素。$('li:gt(2)')
    • :lt(index) - 選擇索引小于 index 的元素。$('li:lt(2)')
    • :not(selector) - 選擇不匹配給定選擇器的元素。$('input:not(:checked)') (選擇所有未選中的 input)
    • :header - 選擇所有標題元素(h1-h6)。$(':header')
  2. 內容過濾:

    • :contains(text) - 選擇包含指定文本的元素(文本匹配是大小寫敏感的)。$('p:contains("Hello")')
    • :empty - 選擇沒有子元素(包括文本節點)的元素。$('td:empty')
    • :has(selector) - 選擇至少包含一個匹配給定選擇器的后代的元素。$('div:has(p)') (選擇包含 <p><div>)
    • :parent - 選擇至少擁有一個子元素(文本節點也算)的元素(與 :empty 相反)。$('td:parent')
  3. 可見性過濾:

    • :visible - 選擇所有可見的元素(占據頁面空間)。
    • :hidden - 選擇所有隱藏的元素(display: none, type="hidden" 的 input, 寬高為 0 等)。
  4. 屬性過濾 ([attribute], [attribute=value] 等):

    • [attr] - 選擇擁有指定屬性的元素。$('[href]') (選擇所有帶有 href 屬性的元素)
    • [attr=value] - 選擇屬性值等于 value 的元素。$('[type="button"]')
    • [attr!=value] - 選擇屬性值不等于 value 的元素。
    • [attr^=value] - 選擇屬性值以 value 開頭的元素。$('[href^="https"]')
    • [attr$=value] - 選擇屬性值以 value 結尾的元素。$('[src$=".png"]')
    • [attr*=value] - 選擇屬性值包含子字符串 value 的元素。$('[title*="flower"]')
    • [attr~=value] - 選擇屬性值包含由空格分隔的單詞 value 的元素。
    • [attr|=value] - 選擇屬性值等于 value 或以 value 開頭后跟連字符 - 的元素。
  5. 子元素過濾 (相對于父元素):

    • :first-child - 選擇其父元素的第一個子元素。$('li:first-child')
    • :last-child - 選擇其父元素的最后一個子元素。$('li:last-child')
    • :nth-child(index/even/odd/equation) - 選擇其父元素下的第 n 個子元素。$('li:nth-child(2)'), $('tr:nth-child(even)'), $('li:nth-child(3n)')
    • :only-child - 選擇是其父元素唯一子元素的元素。
  6. 表單過濾 (專門用于表單元素):

    • :input - 選擇所有 input, textarea, select 和 button 元素。
    • :text - 選擇所有 type=“text” 的 input 元素。
    • :password - 選擇所有 type=“password” 的 input 元素。
    • :radio - 選擇所有 type=“radio” 的 input 元素。
    • :checkbox - 選擇所有 type=“checkbox” 的 input 元素。
    • :submit - 選擇所有 type=“submit” 的 input 和 button 元素。
    • :reset - 選擇所有 type=“reset” 的 input 和 button 元素。
    • :button - 選擇所有 type=“button” 的 input 和 button 元素。
    • :image - 選擇所有 type=“image” 的 input 元素。
    • :file - 選擇所有 type=“file” 的 input 元素。
    • :enabled - 選擇所有啟用的表單元素。
    • :disabled - 選擇所有禁用的表單元素。
    • :selected - 選擇所有被選中的 option 元素(僅用于 <select> 內)。
    • :checked - 選擇所有被選中的 checkbox 或 radio 元素。

jQuery事件綁定

頁面對不同訪問者的響應叫做事件,事件處理程序指的是當 HTML 中發生某些事件時所調用的方法。

$(function(){ ... }) 是 jQuery 的文檔就緒事件,用于確保代碼在 DOM(文檔對象模型)完全加載并解析后執行,

// 完整寫法
$(document).ready(function() {// DOM 就緒后執行的代碼
});// 簡寫
$(function() {// DOM 就緒后執行的代碼console.log("jQuery: DOM 已就緒!");
});

.click() 方法是當按鈕點擊事件被觸發時會調用一個函數
該函數在用戶點擊 HTML 元素時執行

在這里插入圖片描述

.on() 括號內包括 (綁定事件的類型,事件觸發函數)
其中綁定事件的類型為字符串類型,且可以綁定多個事件
注意 .on() 無法綁 “hover”(不是JS原生的是jQuery封裝的),即.on()只能綁JS原生的屬性

在這里插入圖片描述

特殊:給未來元素綁定事件 .on()
括號內包含 (事件類型,未來元素,觸發函數)
需要在HTML中找未來元素的父級元素或祖先元素
后來生成的元素,不能直接綁事件,只能通過已有的元素綁事件

在這里插入圖片描述

jQuery 方法調用

jQuery遍歷

parent() 方法返回被選元素的直接父元素,該方法只會向上一級對 DOM 樹進行遍歷。
children() 方法返回被選元素的所有直接子元素,該方法只會向下一級對 DOM 樹進行遍歷。
同胞擁有相同的父元素,siblings()、next()、nextAll()、prev()、prevAll() 等。

例:

在這里插入圖片描述

打印效果:

在這里插入圖片描述

jQuery 獲取與設置

  1. 獲得內容 - text()、html() 以及 val():
    text() 設置或返回所選元素的文本內容
    html() 設置或返回所選元素的內容(包括 HTML 標簽)
    val() 設置或返回表單字段的值
  2. 獲取屬性 - attr():
    jQuery attr() 方法用于獲取、設置/改變 屬性值
    attr() 方法也允許您同時設置多個屬性。

獲取:

$("#btn1").click(function(){alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){alert("HTML: " + $("#test").html());
});
$("#btn1").click(function(){alert("值為: " + $("#test").val());
});
$("button").click(function(){alert($("#runoob").attr("href"));
});

設置:

$("#btn1").click(function(){$("#test1").text("Hello world!");
});
$("#btn2").click(function(){$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){$("#test3").val("RUNOOB");
});
$("button").click(function(){$("#runoob").attr("href","http://www.runoob.com/jquery");
});

jQuery 添加與刪除

  1. 添加新的 HTML 內容:
    append() 在被選元素的結尾插入內容
    prepend() 在被選元素的開頭插入內容
    after() 在被選元素之后插入內容
    before() 在被選元素之前插入內容

  2. 刪除元素和內容:
    remove() 移除所選元素本身及其所有子元素(整個元素從 DOM 中刪除)
    empty() 只清空內部內容,元素本身仍保留在 DOM 中

jQuery CSS 類

jQuery css() 方法:css() 方法設置或返回被選元素的一個或多個樣式屬性。

在這里插入圖片描述

在這里插入圖片描述

jQuery - AJAX

AJAX = 異步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
簡短地說,在不重載整個網頁的情況下,AJAX 通過后臺加載數據,并在網頁上進行顯示。
通過 jQuery AJAX 方法,能夠使用 HTTP Get 和 HTTP Post 從遠程服務器上請求文本、HTML、XML 或 JSON - 同時您能夠把這些外部數據直接載入網頁的被選元素中。

$.ajax() 執行異步 AJAX 請求
$.get() 使用 AJAX 的 HTTP GET 請求從服務器加載數據
$.post() 使用 AJAX 的 HTTP POST 請求從服務器加載數據

總結

(在 JavaScript 上下文中,“JDOM” 通常是開發者對 jQuery + DOM 操作的口頭簡稱)

在這里插入圖片描述

dom 與 jdom 的轉換:

  • dom ——> jdom 使用 $(dom)
  • jdom ——> dom 使用 jdom[0] []內數字按需設置

另外,jQuery 還有很多方法,此處無法一一展示,推薦一個鏈接可以在此深入學習 jQuery,鏈接: jQuery

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/87142.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/87142.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/87142.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

時鐘周期是什么?

時鐘周期&#xff08;Clock Cycle&#xff09;是什么&#xff1f; 時鐘周期&#xff08;Clock Cycle&#xff09;是計算機系統中一個最基礎的時間單位&#xff0c;也稱為時鐘節拍或時鐘周期時間&#xff08;Clock Period&#xff09;。它由系統時鐘發生器產生的一個周期性脈沖…

如何用SEO優化長尾關鍵詞?

內容概要 在SEO優化領域&#xff0c;長尾關鍵詞扮演著至關重要的角色&#xff0c;它們能有效提升網站在搜索引擎中的可見度和流量轉化率。本文將全面解析如何通過系統方法優化長尾關鍵詞&#xff0c;涵蓋從基礎理論到實戰應用的完整流程。核心內容包括利用專業工具進行關鍵詞挖…

電子面單系統開發全解析

一、如果要做電子面單系統&#xff0c;怎么做&#xff1f; 開發電子面單系統是一項復雜且涉及多方面考量的工程&#xff0c;涵蓋需求分析、系統架構設計、技術選型、接口對接、安全性保障、第三方服務選擇以及部署與維護等關鍵環節。 電子面單系統開發步驟 需求分析&#xf…

UE5 - 制作《塞爾達傳說》中林克的技能 - 18 - 磁力抓取器

讓我們繼續《塞爾達傳說》中林克技能的制作!!! UE版本:5.6.0 VS版本:2022 本章節的核心目標:磁力抓取器 先讓我們看一下完成后的效果: 18_磁力抓取器 大綱如下: 引言功能架構與核心邏輯物理材質與場景配置代碼實現:從識別到操控操作說明1.引言 在《塞爾達傳說》中,林…

基于ApachePOI實現百度POI分類快速導入PostgreSQL數據庫實戰

目錄 前言 一、百度POI分類簡介 1、數據表格 2、分類結構 二、從Excel導入到PG數據庫 1、Excel解析流程 2、數據入庫 3、入庫成果及檢索 三、總結 前言 在上一篇博文中&#xff0c;我們對高德POI分類進行了深入剖析 并對Excel 中 POI 分類數據的存儲結構特點進行了詳細介…

學習經驗分享【41】YOLOv13:基于超圖增強自適應視覺感知的實時目標檢測

YOLO算法更新速度很快&#xff0c;已經出到V13版本&#xff0c;后續大家有想發論文或者搞項目可更新自己的baseline了。 摘要&#xff1a;YOLO 系列模型憑借其卓越的精度和計算效率&#xff0c;在實時目標檢測領域占據主導地位。然而&#xff0c;YOLOv11 及早期版本的卷積架構&…

Handling outliers in non-blind image deconvolution論文閱讀

Handling outliers in non-blind image deconvolution 1. 研究目標與實際意義2. 創新方法:基于EM的異常值建模2.1 新模糊模型2.1.1 目標函數2.2 EM框架:迭代優化二元掩碼2.2.1 E步:計算后驗權重 E [ m x ] E[m_x] E[mx?]2.2.2 M步:加權正則化反卷積2.3 優化加速技術2.3.1…

Redis 功能擴展:Lua 腳本對 Redis 的擴展

Redis 是一個高性能的內存數據庫&#xff0c;支持多種數據結構&#xff0c;如字符串、哈希、列表、集合和有序集合。為了增強其功能&#xff0c;Redis 引入了 Lua 腳本支持&#xff0c;使開發者可以編寫自定義的腳本&#xff0c;確保操作的原子性并提高復雜操作的性能。本文將詳…

七天學完十大機器學習經典算法-06.支持向量機(SVM):分類邊界的藝術——深入淺出指南

接上一篇《七天學完十大機器學習經典算法-05.從投票到分類&#xff1a;K近鄰(KNN)算法完全指南》 想象你要在操場上為兩個班級劃活動區域&#xff0c;如何畫出一條最公平的分界線&#xff1f;這條線不僅要分開兩班學生&#xff0c;還要讓兩個班都離分界線盡可能遠——這就是支持…

python如何安裝PyQt6-stubs依賴包

PyQt6-stubs 是為 PyQt6 提供類型提示&#xff08;Type Hints&#xff09;和 IDE 智能補全支持的第三方補丁包&#xff0c;特別適用于 PyCharm、VS Code 等現代 IDE。它對開發者在編碼時幫助極大。 一、安裝方法 需要提前安裝好git&#xff0c;然后克隆PyQt6-stubs源碼&#xf…

創宇智腦 MCP 賦能 AiPy,IP 風險調查效率實現 10 倍飛躍,威脅分析一鍵生成

還記得上個月那個焦頭爛額的凌晨三點嗎&#xff1f;監控大屏突然瘋狂閃爍&#xff0c;500 多個 IP 地址同時出現異常訪問&#xff0c;密密麻麻的數據流在屏幕上跳動&#xff0c;像極了一張讓人窒息的大網。我和團隊成員瞪著布滿血絲的眼睛&#xff0c;手動排查每一個 IP&#x…

使用SRS+ffmpeg實現https推流flv

1修改SRS的live.conf配置如下&#xff1a; # Live streaming config for SRS. # see full.conf for detail config.listen 1935; max_connections 1000; srs_log_tank console; daemon off;http_api {enabled on;listen …

力扣網編程題:合并兩個有序數組(雙指針解法)

一. 簡介 上一篇文章對"合并兩個有序數組"題目&#xff0c;使用了暴力解法&#xff0c;算法時間復雜度比較高。文章如下&#xff1a; 力扣網編程題&#xff1a;合并兩個有序數組&#xff08;直接解法&#xff09;-CSDN博客 本文滿足進階要求&#xff0c;算法時間復…

數據結構之 【樹的簡介】(樹的(相關)概念、二叉樹的概念、部分性質、滿二叉樹、完全二叉樹)

目錄 1.樹的概念及結構 1.1樹的概念 1.2樹的相關概念 1.3樹的表示 1.4樹在實際中的應用 2.二叉樹概念及結構 2.1二叉樹的概念 2.2特殊的二叉樹 2.3二叉樹的性質 2.4應用題 1.樹的概念及結構 1.1樹的概念 樹是一種非線性的數據結構&#xff0c;由 n&#xff08;n…

Redis-7.4.3-Windows-x64下載安裝使用

Redis軟件包下載地址鏈接&#xff1a;https://github.com/redis-windows/redis-windows/releases 檢查或者修改配置文件redis.conf&#xff1a; #如果允許外部其他主機訪問本機redis&#xff0c;設置成&#xff1a;bind 0.0.0.0 bind 127.0.0.1 protected-mode yes #設置端口…

Educational Codeforces Round 180 (Rated for Div. 2)

AB 略 C 對于axayaz>max(2*az,an)&#xff0c;枚舉y z 二分x D 首先&#xff0c;長度為1的邊的已經有n-1條&#xff0c;那么構造的圖中只能存在一條長度為2的好邊。我們先構造出一個圖只存在n-1條好邊&#xff0c;我們發現對于一個點所有連接它的邊要不均指向它要不均背…

CAD文件處理控件Aspose.CAD教程:在 Python 中將 DGN 文件轉換為 PDF

概述 將DGN文件轉換為PDF對許多行業至關重要&#xff0c;包括工程和建筑行業。能夠輕松地以 PDF 格式共享設計&#xff0c;增強協作和可訪問性。通過使用Aspose.CAD for Python via .NET的強大功能&#xff0c;開發人員可以高效地自動化此過程。這款 CAD 轉換器 SDK 簡化了轉換…

寧德時代攜手問界,以“廠中廠”模式加速擴產

6月30日&#xff0c;寧德時代在賽力斯超級工廠的兩條CTP2.0高端電池包產線正式投產。這是寧德時代在重慶布局的首個基地&#xff0c;并首次采用“廠中廠”合作模式&#xff0c;為問界系列車型本地化生產供應動力電池系統。重慶市、四川省廣安市有關負責人&#xff0c;賽力斯集團…

工作中常用的Git操作命令(一)

說明 時間過得真快&#xff0c;一轉眼嗎嘍也是好歹工作幾年了&#xff0c;把這些年平時用的git命令整理記錄一下&#xff0c;分幾個文章&#xff0c;囊括了常用的命令&#xff0c;工作日常很多時候都是使用svn&#xff0c;回到宿舍自己的項目才是git&#xff0c;就問你離不離譜…

2.2.5 Windows系統日志管理

文章目錄 一、試題及考試說明二、操作步驟1. 在計算機策略中&#xff0c;啟用安裝程序的日志記錄&#xff0c;并且配置日志大小最大10M&#xff0c;日志存儲位置為D:\kaoshi_3\2.2.5\&#xff1b;2. 查詢安全日志中登錄失敗的日志信息&#xff0c;并導出保存在D:\kaoshi_3\2.2.…