04.jQuery 基本語法筆記

?

jQuery是什么

  1. jQuery是一個輕量級的、兼容多瀏覽器的JavaScript庫。
  2. jQuery使用戶能夠更方便地處理HTML Document、Events、實現動畫效果、方便地進行Ajax交互,能夠極大地簡化JavaScript編程。它的宗旨就是:“Write less, do more.“

jQuery引入到HTML

在HTML的body內,底部引入文件jquery-3.2.1.min.js

<script src="jquery-3.2.1.min.js"></script>
<script>$("#b1").on("click", function () {$(".c1").offset({left: 200, top:200});});$(window).scroll(function () {if ($(window).scrollTop() > 100) {$("#b2").removeClass("hide");}else {$("#b2").addClass("hide");}});$("#b2").on("click", function () {$(window).scrollTop(0);})
</script>

jQuery對象

jQuery對象就是通過jQuery包裝DOM對象后產生的對象。jQuery對象是 jQuery獨有的。如果一個對象是?jQuery對象,那么它就可以使用jQuery里的方法:例如$(“#i1”).html()。

$("#i1").html()的意思是:獲取id值為?i1的元素的html代碼。其中?html()是jQuery里的方法。

相當于:?document.getElementById("i1").innerHTML;

?

一個約定,我們在聲明一個jQuery對象變量的時候在變量名前面加上$:

var $variable = jQuery對像
var variable = DOM對象
$variable[0]//jQuery對象轉成DOM對象

拿上面那個例子舉例,jQuery對象和DOM對象的使用:

$("#i1").html();//jQuery對象可以使用jQuery的方法
$("#i1")[0].innerHTML;// DOM對象使用DOM的方法

?

jQuery基礎語法

$(selector).action()

?

查找標簽

基本選擇器

id選擇器:

$("#id")

標簽選擇器:

$("tagName")

class選擇器:

$(".className")

配合使用:

$("div.c1")  // 找到有c1 class類的div標簽

所有元素選擇器:

$("*")

組合選擇器:

$("#id, .className, tagName")

層級選擇器:

x和y可以為任意選擇器

$("x y");// x的所有后代y(子子孫孫)
$("x > y");// x的所有兒子y(兒子)
$("x + y")// 找到所有緊挨在x后面的y
$("x ~ y")// x之后所有的兄弟y

基本篩選器:

?

:first // 第一個
:last // 最后一個
:eq(index)// 索引等于index的那個元素
:even // 匹配所有索引值為偶數的元素,從 0 開始計數
:odd // 匹配所有索引值為奇數的元素,從 0 開始計數
:gt(index)// 匹配所有大于給定索引值的元素
:lt(index)// 匹配所有小于給定索引值的元素
:not(元素選擇器)// 移除所有滿足not條件的標簽
:has(元素選擇器)// 選取所有包含一個或多個標簽在其內的標簽(指的是從后代元素找)

?

例子:

$("div:has(h1)")// 找到所有后代中有h1標簽的div標簽
$("div:has(.c1)")// 找到所有后代中有c1樣式類的div標簽
$("li:not(.c1)")// 找到所有不包含c1樣式類的li標簽
$("li:not(:has(a))")// 找到所有后代中不含a標簽的li標簽

屬性選擇器:

[attribute]
[attribute=value]// 屬性等于
[attribute!=value]// 屬性不等于

例子:

// 示例
<input type="text">
<input type="password">
<input type="checkbox">
$("input[type='checkbox']");// 取到checkbox類型的input標簽
$("input[type!='text']");// 取到類型不是text的input標簽

表單篩選器:

:text
:password
:file
:radio
:checkbox:submit
:reset
:button

?

例子:

$(":checkbox")  // 找到所有的checkbox

表單對象屬性:

:enabled
:disabled
:checked
:selected

例子:

找到可用的input標簽

<form><input name="email" disabled="disabled" /><input name="id" />
</form>$("input:enabled")  // 找到可用的input標簽

?找到被選中的option:

?

<select id="s1"><option value="beijing">北京市</option><option value="shanghai">上海市</option><option selected value="guangzhou">廣州市</option><option value="shenzhen">深圳市</option>
</select>$(":selected")  // 找到所有被選中的option

?

篩選器方法

下一個元素:

$("#id").next()
$("#id").nextAll()
$("#id").nextUntil("#i2")

上一個元素:

$("#id").prev()
$("#id").prevAll()
$("#id").prevUntil("#i2")

父親元素:

$("#id").parent()
$("#id").parents()  // 查找當前元素的所有的父輩元素
$("#id").parentsUntil() // 查找當前元素的所有的父輩元素,直到遇到匹配的那個元素為止。

兒子和兄弟元素:

$("#id").children();// 兒子們
$("#id").siblings();// 兄弟們

查找

搜索所有與指定表達式匹配的元素。這個函數是找出正在處理的元素的后代元素的好方法。

$("div").find("p")

等價于$("div p")

篩選

篩選出與指定表達式匹配的元素集合。這個方法用于縮小匹配的范圍。用逗號分隔多個表達式。

$("div").filter(".c1")  // 從結果集中過濾出有c1樣式類的

等價于 $("div.c1")

補充:

.first() // 獲取匹配的第一個元素
.last() // 獲取匹配的最后一個元素
.not() // 從匹配元素的集合中刪除與指定表達式匹配的元素
.has() // 保留包含特定后代的元素,去掉那些不含有指定后代的元素。
.eq() // 索引值等于指定值的元素

操作標簽

樣式操作

樣式類

addClass();// 添加指定的CSS類名。
removeClass();// 移除指定的CSS類名。
hasClass();// 判斷樣式存不存在
toggleClass();// 切換CSS類名,如果有就移除,如果沒有就添加。

示例:開關燈和模態框

CSS

css("color","red")//DOM操作:tag.style.color="red"

示例:

$("p").css("color", "red"); //將所有p標簽的字體設置為紅色

位置操作

offset()// 獲取匹配元素在當前窗口的相對偏移或設置元素位置
position()// 獲取匹配元素相對父元素的偏移
scrollTop()// 獲取匹配元素相對滾動條頂部的偏移
scrollLeft()// 獲取匹配元素相對滾動條左側的偏移

.offset()方法允許我們檢索一個元素相對于文檔(document)的當前位置。

和?.position()的差別在于:?.position()是相對于相對于父級元素的位移。

?

尺寸:

height()
width()
innerHeight()
innerWidth()
outerHeight()
outerWidth()

文本操作

HTML代碼:

html()// 取得第一個匹配元素的html內容
html(val)// 設置所有匹配元素的html內容

文本值:

text()// 取得所有匹配元素的內容
text(val)// 設置所有匹配元素的內容

值:

val()// 取得第一個匹配元素的當前值
val(val)// 設置所有匹配元素的值
val([val1, val2])// 設置多選的checkbox、多選select的值

例如:

<input type="checkbox" value="basketball" name="hobby">籃球
<input type="checkbox" value="football" name="hobby">足球<select multiple id="s1"><option value="1">1</option><option value="2">2</option><option value="3">3</option>
</select>

設置值:

$("[name='hobby']").val(['basketball', 'football']);
$("#s1").val(["1", "2"])

示例:

獲取被選中的checkbox或radio的值:

<label for="c1">女</label>
<input name="gender" id="c1" type="radio" value="0">
<label for="c2">男</label>
<input name="gender" id="c2" type="radio" value="1">

可以使用:

$("input[name='gender']:checked").val()

屬性操作

用于ID等或自定義屬性:

attr(attrName)// 返回第一個匹配元素的屬性值
attr(attrName, attrValue)// 為所有匹配元素設置一個屬性值
attr({k1: v1, k2:v2})// 為所有匹配元素設置多個屬性值
removeAttr()// 從每一個匹配的元素中刪除一個屬性

用于checkbox和radio

prop() // 獲取屬性
removeProp() // 移除屬性

注意:

在1.x及2.x版本的jQuery中使用attr對checkbox進行賦值操作時會出bug,在3.x版本的jQuery中則沒有這個問題。為了兼容性,我們在處理checkbox和radio的時候盡量使用特定的prop(),不要使用attr("checked", "checked")。

<input type="checkbox" value="1">
<input type="radio" value="2">
<script>$(":checkbox[value='1']").prop("checked", true);$(":radio[value='2']").prop("checked", true);
</script>

prop和attr的區別:

attr全稱attribute(屬性)?

prop全稱property(屬性)

雖然都是屬性,但他們所指的屬性并不相同,attr所指的屬性是HTML標簽屬性,而prop所指的是DOM對象屬性,可以認為attr是顯式的,而prop是隱式的。

舉個例子:

<input type="checkbox" id="i1" value="1">

針對上面的代碼,

$("#i1").attr("checked")  // undefined
$("#i1").prop("checked")  // false

可以看到attr獲取一個標簽內沒有的東西會得到undefined,而prop獲取的是這個DOM對象的屬性,因此checked為false。

如果換成下面的代碼:

<input type="checkbox" checked id="i1" value="1">

再執行:

$("#i1").attr("checked")   // checked
$("#i1").prop("checked")  // true

這已經可以證明attr的局限性,它的作用范圍只限于HTML標簽內的屬性,而prop獲取的是這個DOM對象的屬性,選中返回true,沒選中返回false。

接下來再看一下針對自定義屬性,attr和prop又有什么區別:

<input type="checkbox" checked id="i1" value="1" me="自定義屬性">

執行以下代碼:

$("#i1").attr("me")   // "自定義屬性"
$("#i1").prop("me")  // undefined

可以看到prop不支持獲取標簽的自定義屬性。

總結一下:

  1. 對于標簽上有的能看到的屬性和自定義屬性都用attr
  2. 對于返回布爾值的比如checkbox、radio和option的是否被選中都用prop。

?

文檔處理

添加到指定元素內部的后面

$(A).append(B)// 把B追加到A
$(A).appendTo(B)// 把A追加到B

添加到指定元素內部的前面

$(A).prepend(B)// 把B前置到A
$(A).prependTo(B)// 把A前置到B

添加到指定元素外部的后面

$(A).after(B)// 把B放到A的后面
$(A).insertAfter(B)// 把A放到B的后面

添加到指定元素外部的前面

$(A).before(B)// 把B放到A的前面
$(A).insertBefore(B)// 把A放到B的前面

移除和清空元素

remove()// 從DOM中刪除所有匹配的元素。
empty()// 刪除匹配的元素集合中所有的子節點。

例子:

點擊按鈕在表格添加一行數據。

點擊每一行的刪除按鈕刪除當前行數據。

替換

replaceWith()
replaceAll()

克隆

clone()// 參數

?

摘抄自:https://www.cnblogs.com/liwenzhou/p/8178806.html

?

?

?

?

?

?

?

?

?

?

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

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

相關文章

1. ReactJS基礎(開發環境搭建)

本文主要介紹通過React官方提供的create-react-app腳手架進行開發環境的搭建。 1.安裝node環境(安裝過程這里不做介紹&#xff0c;可參考其他博文) 在cmd中輸入node -v 如果可以看到相應版本號&#xff0c;說明node環境安裝成功 2.npm全局安裝create-react-app腳手架 3.cmd命令…

軟件工程(2018)第一次作業

(1) 回顧你過去將近3年的學習經歷 當初你報考的時候&#xff0c;是真正喜歡計算機這個專業嗎&#xff1f; 在高中的時候&#xff0c;我們就開設了微機課&#xff0c;當時上課的內容不僅有Microsoft word,excel,powerpoint的使用&#xff0c;還有編程的基本入門&#xff0c;當時…

“云計算+DevOps”的正確打開方式

以我們的經驗看&#xff0c;技術和工具是很重要&#xff0c;但是技術和工具本身卻不能產生價值&#xff0c;而將DevOps和云計算結合卻可以。事實上&#xff0c;云計算的特性決定了&#xff0c;云計算和DevOps勢必如影隨形&#xff0c;而云計算與DevOps的結合也正在為企業用戶提…

微服務和分布式系統中的授權解決方案

本文是 《精讀 Mastering ABP Framework》 2.3 探索橫切關注點 - 使用授權和權限系統 一節的擴充內容&#xff0c;重點探討了授權在分布式和微服務系統中遇到的挑戰&#xff0c;以及 ABP Framework 中采用的解決方案。認證 & 授權? 認證&#xff08;Authentication&#x…

pat 團體天梯賽 L2-012. 關于堆的判斷

L2-012. 關于堆的判斷 時間限制400 ms內存限制65536 kB代碼長度限制8000 B判題程序Standard作者陳越將一系列給定數字順序插入一個初始為空的小頂堆H[]。隨后判斷一系列相關命題是否為真。命題分下列幾種&#xff1a; “x is the root”&#xff1a;x是根結點&#xff1b;“x a…

04-1.jQuery事件與補充each/data

目錄 事件 事件綁定 常用事件 阻止后續事件執行 補充 each .data() 事件 事件綁定 .on( events [, selector ],function(){}) events&#xff1a; 事件selector: 選擇器&#xff08;可選的&#xff09;function: 事件處理函數 普通綁定&#xff0c;沒有選擇器&#x…

【刷出存在感】鋒會圓桌現場

【編者按】本文為鋒會|路由器專場的圓桌全文&#xff08;有刪減&#xff09;。 圓桌嘉賓&#xff1a;&#xff08;自左向右依次&#xff09; 極路由聯合創始人 丁衣 知道創宇研究部總監&#xff08;安全專家&#xff09; 余弦 WRTnode創始人&#xff08;開源硬件領域&#xff0…

如何從命令行瀏覽和連接到無線網絡

() We are always on the lookout for geeky ways to impress our friends, and recently we came across a way to connect to our wireless network from the command prompt, so today we’ll show you how to do it as well. 我們一直在尋找令人印象深刻的方式來打動我們的…

html 基礎之canvas 和 localStorage

1&#xff0c;建立一個canvas 畫布&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4 <meta charset"UTF-8">5 <meta name"viewport" content"widthdevice-width, initial-scale1.0">…

國產數據助力金融行業維護信息安全

金融信息系統作為國家關鍵信息基礎設施&#xff0c;直接關系到國家經濟、社會的正常運行。長期以來&#xff0c;我國金融信息化依賴進口設備和系統&#xff0c;金融行業尤其是銀行業被IBM、HP、甲骨文等外商捆綁較深&#xff0c;金融行業信息化設備的軟硬件系統被外商壟斷。這等…

mysql查詢優化以及面試小結

mysql面試小結&#xff1a; 1.mysql的基本架構 2.mysql的索引 btree的原理 3.mysql的索引優化 4.mysql的sql查詢優化 慢查詢日志 Show prodile 全局查詢日志 5.mysql的主從復制 6.mysql的鎖機制 表鎖 行鎖轉載于:https://www.cnblogs.com/daiwei1981/p/10224934.html

05.Bootstrap導入基礎筆記

Bootstrap介紹 Bootstrap是Twitter開源的基于HTML、CSS、JavaScript的前端框架。 它是為實現快速開發Web應用程序而設計的一套前端工具包。 它支持響應式布局&#xff0c;并且在V3版本之后堅持移動設備優先。 為什么要使用Bootstrap&#xff1f; 在Bootstrap出現之前&…

etcd v3 集群——簡單配置

2019獨角獸企業重金招聘Python工程師標準>>> 一、etcd v3安裝&#xff1a; tar -axf etcd-v3.2.0-linux-amd64.tar.gz -C /usr/local/src/chmod ax /usr/local/src/etcd-v3.2.0-linux-amd64/etcd*cp -a /usr/local/src/etcd-v3.2.0-linux-amd64/etcd* /usr/local/bi…

windows變量延遲_Windows 10的2018年10月更新可能推遲到11月(這就是原因)

windows變量延遲Microsoft stopped offering Windows 10’s October 2018 Update on October 6, as it was deleting some people’s files. Now, another ugly data loss bug has reared its head, and it won’t be fixed until November. 微軟于10月6日停止提供Windows 10的…

rest-framework-權限組件

rest-framework-權限組件 一 權限簡介 只用超級用戶才能訪問指定的數據&#xff0c;普通用戶不能訪問&#xff0c;所以就要有權限組件對其限制 二 局部使用 from rest_framework.permissions import BasePermission class UserPermission(BasePermission):message 不是超級用戶…

linux服務器上如何顯示工作路徑

1. 修改PS環境變量 [rootlinux-node01 ~]# vi /etc/bashrc [ "$PS1" "\\s-\\v\\\$ " ] && PS1"[\u\h \W]\\$ "將PS1"[\u\h \W]\\$ "修改成PS1"[\u\h \w]\\$ " 2. 重新打開一個窗口 [rootlinux-node01 ~]# cd /etc…

MySQL-01:下載安裝配置及初始化命令

目錄 1、下載 2、解壓 3、初始化 4、啟動MySQL服務 5、連接MySQL服務 6、快捷設置 a. 添加環境變量 b. 將MySQL服務制作成windows服務 1、下載 下載壓縮包&#xff0c;非安裝包 下載網址&#xff1a; http://dev.mysql.com/downloads/mysql/ 2、解壓 選擇解壓目錄&…

根據MediatR的Contract Messages自動生成Minimal WebApi接口

大家好&#xff0c;我是失業在家&#xff0c;正在找工作的博主Jerry。今天給大家介紹一個能大大減少ASP.Net Minimal WebApi編碼量的方法。我們一般會把微服務的VO和DTO封裝成消息類&#xff0c;并作為WebApi的Request和Response參數進行網絡傳遞。如果使用MediatR&#xff0c;…

bupt summer training for 16 #8 ——字符串處理

https://vjudge.net/contest/175596#overview A.設第i次出現的位置左右端點分別為Li&#xff0c;Ri 初始化L0 0&#xff0c;則有ans sum{ (L[i] - L[i-1]) * (n 1 - Ri) } 1 #include <cstdio>2 #include <cstring>3 #include <iostream>4 #include <a…

程序員必須知道的HTML常用代碼有哪些?

HTML即超文本標記語言&#xff0c;是目前應用最為廣泛的語言之一&#xff0c;是組成一個網頁的主要語言。在現今這個HTML5華麗麗地占領了整個互聯網的時候&#xff0c;如果想要通過網頁抓住瀏覽者的眼球光靠因循守舊是不行的&#xff0c;程序猿們需要掌握一些必須知道的HTML常用…