Shell 流程控制
870
2025-04-03
jQuery 是一個快速、簡潔的 JavaScript 框架,jQuery 設計的宗旨是 “write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 JavaScript 常用的功能代碼,提供一種簡便的 JavaScript 設計模式,優(yōu)化 HTML 文檔操作、事件處理、動畫設計和 Ajax 交互。
目錄
一、認識jQuery
二、jQuery的使用
三、jQuery原理
四、?jQuery API三大特點
五、查找元素
1. 子元素過濾選擇器(css選擇器)
2. 基本過濾選擇器(jQuery專屬)
3. 內容過濾器(jQuery專屬)
4. 可見性過濾(jQuery專屬)
5. 表單元素過濾選擇器(jQuery專屬)
一、認識jQuery
jQuery 的核心特性是具有獨特的鏈式語法和短小清晰的多功能接口;具有高效靈活的 css 選擇器,并且可對 css 選擇器進行擴展;擁有便捷的插件擴展機制和豐富的插件,且 jQuery 兼容各種主流瀏覽器。
jQuery 依舊執(zhí)行 DOM 的增、刪、改、查、事件綁定操作,可以說 jQuery 是 DOM 的延續(xù);jQuery 對 DOM 操作的每一步都進行了簡化,是用函數(shù)來解決一切問題(jQuery就是函數(shù)庫)。
但是 jQuery只有PC端,沒有移動端,而且只對 DOM 操作的每一步進行了簡化,沒有減少步驟,所以用的會越來越少。
二、jQuery的使用
到官網(wǎng)jQuery進行下載即可,下載版本后引入網(wǎng)頁。
1. 將 jQuery 引入網(wǎng)頁的方法
(1)將 jquery.js 文件下載到項目本地文件夾,用相對路徑引入
(2)引入 CDN 網(wǎng)絡中的 jquery.js 文件
CDN 網(wǎng)絡可在全球范圍共享一個文件;任意地區(qū)的一個客戶端想用 CDN 網(wǎng)絡中的文件時,CDN 網(wǎng)絡都會從距離這個客戶端網(wǎng)絡最優(yōu)的服務器下載資源給客戶端。
//eg:微軟提供的cdn網(wǎng)址:
舉例:對比 DOM 與 jQuery 寫法;
三、jQuery原理
1. 引入 jquery.js 文件后,會在內存中新增一種類型,包括:
(1)構造函數(shù):創(chuàng)建該類型的子對象;
(2)原型對象:集中保管該類型所有子對象共用的方法。
2. 使用 jQuery 函數(shù)庫中的函數(shù)時,需要先創(chuàng)建 jQuery 類型的子對象
//標準寫法
var jq子對象=new jQuery(選擇器);
//簡寫
var jq子對象=jQuery(選擇器)
var jq子對象=$(選擇器) //$相當于new jQuery 1.查找DOM元素 2.創(chuàng)建jQuery對象
只有 jQuery 子對象才能訪問 jQuery 原型對象中的簡化版共有方法。原生的 DOM 元素對象無權使用 jQuery 原型對象中的簡化版函數(shù)。
3.? jQuery 中事件處理函數(shù)里的 this
.click 會翻譯為 .οnclick=function(){ ... },再執(zhí)行,所以 .click() 中的 this,其實還是 .onclick 里的 this。與 DOM 中的 this 完全一樣,都指向正在點擊的當前原生 DOM 元素對象本身;jquery 中所有事件處理函數(shù)中的this都必須用 $() 包裹起來(包裝),形成一個 jQuery 子對象,才可以使用 jQuery 函數(shù)庫中的函數(shù)。
四、?jQuery API三大特點
1.自帶for循環(huán)遍歷
只對 jQuery 查找結果對象調用一次簡化版函數(shù),就可以自動遍歷查找結果中每個 DOM 元素,自動為每個 DOM 元素應用多用的 DOM 操作
2.一個函數(shù)兩用
和修改相關的函數(shù),都既能用于修改新值,又能用于獲取舊值;
調用函數(shù)時,沒有傳新值參數(shù),函數(shù)默認執(zhí)行獲取舊值操作,
調用函數(shù)時,傳了新值參數(shù),函數(shù)自動改為執(zhí)行修改為新值操作。
舉例:有多個按鈕,記錄每個按鈕的單擊次數(shù);
//為三個按鈕綁定單擊事件,記錄單擊次數(shù)
//DOM 4步
//1. 查找觸發(fā)事件的元素
var $btn = $("button");
//2. 綁定事件處理函數(shù)
$btn.click(function () {
//3.?查找要修改的元素:本例中改當前按鈕,所以用this
var $this = $(this);
//4.?修改元素
var n = parseInt(
$this.html().slice(9, -1)
);
n++;
$this.html(`click me(${n})`)
});
五、查找元素
jQuery 主要通過選擇器的方式查找元素,除了原始 CSS 選擇器之外,還添加了額外 jQuery 專屬的選擇器。
1. 子元素過濾選擇器(css選擇器)
:first-child
舉例:使用子元素過濾選擇器選擇指定元素;
//查找每個ul中第一個li,讓其字體顏色變?yōu)榧t色
$("ul>li:first-child").css("color", "red");
//查找每個ul中最后一個li,讓其邊框變?yōu)榫G色
$("ul>li:last-child").css("border", "1px solid green");
//查找每個ul中處于偶數(shù)位置的,讓其背景變?yōu)辄S色
$("ul>li:nth-child(2n)").css("background", "yellow");
//查找每個ul中第2個li,添加藍色陰影
$("ul>li:nth-child(2)").css("box-shadow", "0 0 10px blue");
//查找作為ul下唯一子元素的li,設置20px內邊距
$("ul>li:only-child").css("padding", "20px");
2. 基本過濾選擇器(jQuery專屬)
先將所有符合要求的元素集中保存到一個大的集合中從0開始統(tǒng)一編號,按元素在集合中的統(tǒng)一編號來選擇指定的元素。
:first
:last
:eq(i)
:lt(i)
:gt(i)
:even
:odd
舉例:使用基本過濾選擇器選擇指定元素;
//查找第一個li,字體變化紅色
$("li:first").css("color", "red");
//查找最后一個li,邊框變?yōu)榫G色
$("li:last").css("border", "1px solid green");
//查找處于(正常人眼)偶數(shù)位置的li,背景變?yōu)辄S色
$("li:odd").css("background", "yellow");
//查找第2個li,添加藍色陰影
$("li:eq(2)").css("box-shadow", "0 0 10px blue");
3. 內容過濾器(jQuery專屬)
根據(jù)元素的內容不同來選擇元素。
:contains(文本)
選擇內容中包含指定文本關鍵字的元素
舉例:使用內容過濾選擇器選擇指定元素;
×
//選擇包含"提交"二字的按鈕,變?yōu)榫G色按鈕
$("button:contains(提交)").css("background-color", "green");
//選中包含.close按鈕的.alert元素,讓它們變?yōu)榧t色的警告框
$(".alert:has(.close)").css("background-color", "red");
//選中不包含.close按鈕的.alert元素,讓它們變?yōu)榫G色的警告框
$(".alert:not(:has(.close))").css("background-color", "green");
//選擇內容為空的.alert元素,添加紅色陰影
$(".alert:empty").css("box-shadow", "0 0 10px red");
//選擇內容不為空的.alert元素,添加綠色陰影
$(".alert:parent").css("box-shadow", "0 0 10px green");
4. 可見性過濾(jQuery專屬)
根據(jù)元素是否可見來選擇元素;
:visible
舉例:使用 :hidden 選擇不可見的元素;
我同意本站的使用條款
//DOM 4步
//1. 查找觸發(fā)事件的元素
$(":checkbox")
//2. 綁定事件處理函數(shù)
.click(function () {
//3. 查找要修改的元素
var $others = $(":input:not(:checkbox)")
//4. 修改元素
//如果當前checkbox是選中的
if (this.checked == true) {
// 則啟用其他元素
$others.prop("disabled", false);
} else {
// 否則禁用其他元素
$others.prop("disabled", true);
}
})
JavaScript jQuery
版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。
版權聲明:本文內容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內刪除侵權內容。