jquery 常用選擇器和方法以及遍歷(超詳細)




學習總結

參考博文:
https://blog.csdn.net/h13783313210/article/details/79832318

一、JQuery 介紹

1. 什么是 jQuery

1)jQuery 是一個 JavaScript 函數庫;
2)jQuery 是輕量級的 JS 庫 ,它兼容 CSS3,還兼容各種瀏覽器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+);
3)jQuery 是免費、開源的;
4)jQuery 是一個兼容多瀏覽器的 Javascript 庫,核心理念是 write less,do more(寫得更少,做得更多)。

2. jQuery 版本介紹

1)jQuery1.x:經典版本,兼容 IE6,7,8。
2)jQuery2.0:改進版本,及后續版本將不再支持 IE6,7,8 瀏覽器。

3. jQuery 文件介紹

1)jQuery1.x.js:jQuery 源文件;學習 jQuery 或者 debug 的時候使用。
2)jQuery1.x.min.js:jQuery 壓縮之后的文件;正常項目中使用。

二、jQuery 對象

1. jQuery 和 DOM 的區別

  • 通過 document.getElementById() 找到的元素和通過 $() 找不到元素不一樣:
    1)通過 jQuery 方法獲取的頁面元素,都是 jQuery 對象。
    2)Query 對象其實就是對 DOM 對象進行了包裝,增強了相關方法,讓開發者使用起來更加便利。
    3)雖然 jQuery 對象包裝了 DOM 對象但是兩者不能混用,各位可以理解為 jQuery 對象與 DOM 對象是兩個不類型的對象,但是我們調用 jQuery 對象的方法,事實上底層代碼還是操作的是 DOM 對象。

2. jQuery 對象與 DOM 對象之間轉換

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="/static/jQuery-1.11/jquery-1.11.3.min.js"></script>
    // 都是一個函數
    <script> console.log($ === jQuery); window.onload = function () { let btn = document.getElementById("btn"); console.log(btn); // 通過 jQuery 獲取 屬性值 let $btn = $('#btn'); console.log($btn); // DOM 對象轉 jQuery console.log($(btn)); // jQuery 對象轉成 DOM 對象,這個很少用,直接獲取數組第一個值 console.log($btn.get(0)); // 以后盡量使用 jQuery 方法操作頁面元素,綁定事件等 } </script>
</head>
<body>
<button id="btn">按鈕</button>
</body>
</html>

3. 自執行函數(三種)

表示文檔結構已經加載完成(不包含圖片等非文字媒體文件),onload 則指示頁面包含圖片等文件在內的所有元素都加載完成。

<script> $(function(){ // do something  }) </script>
<script> $(document).ready(function(){ //do something  }) </script>
<script> $().ready(function(){ //do something  }) </script>

三、jQuery 對象常用方法

1. 常用方法

  1. val()

作用:val() 方法返回或設置被選元素的 value 屬性。

方法名 作用
$(selector).val() 用於返回值:該方法返回第一個匹配元素的 value 屬性的值
$(selector).val(value) 用於設置值:該方法設置所有匹配元素的 value 屬性的值\

注意:val() 方法通常與 HTML 表單元素一起使用。

  1. text()

作用:text() 方法設置或返回被選元素的文本內容。

方法名 作用
$(selector).text() 用於返回內容:返回所有匹配元素的文本內容(會刪除 HTML 標記
$(selector).text(content) 用於設置內容:重寫所有匹配元素的內容

注意:text() 方法返回內容時會刪除 HTML 標簽

  1. html()

作用:html() 方法設置或返回被選元素的內容(innerHTML)。

方法名 作用
$(selector).html() 用於返回內容:返回第一個匹配元素的內容
$(selector).html(content) 用於設置內容:重寫所有匹配元素的內容

注意:html() 方法返回內容時不會刪除 HTML 標簽

  1. css()

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

方法名 作用
css(“propertyname”) 返回指定的 CSS 屬性的值(無指定則返回第一個)
css(“propertyname”, “value”) 設置指定的 CSS 屬性值(無指定則設置全部)

  1. get() 非ajax用法

作用:get() 方法獲取由選擇器指定的 DOM 元素。

方法名 作用
$(selector).get( index) index 可選。規定要獲取哪個匹配的元素(通過 index 編號)。

  1. parent()

作用:parent() 方法返回被選元素的直接父元素。

方法名 作用
$(selector).parent(filter) filter 可選。規定縮小搜索父元素范圍的選擇器表達式。

  1. children()

作用:children() 方法返回被選元素的所有直接子元素。

方法名 作用
$(selector).children(filter) filter 可選。規定縮小搜索子元素范圍的選擇器表達式。

  1. parents()

作用:parents() 方法返回被選元素的所有祖先元素。

方法名 作用
$(selector).parents(filter) filter 可選。規定縮小搜索祖先元素范圍的選擇器表達式。

注意:如需返回多個祖先,請使用逗號分隔每個表達式。

  1. find()

作用:方法返回被選元素的后代元素。

方法名 作用
$(selector).find(filter) filter 必需。過濾搜索后代條件的選擇器表達式、元素或 jQuery 對象。

注意:如需返回多個后代,請使用逗號分隔每個表達式。

  1. eq()

作用:方法返回帶有被選元素的指定索引的元素(索引號從 0 開頭)。

方法名 作用
$(selector).eq(index) index 必需。規定元素的索引。可以是整數或負數。

注意:使用負數將從被選元素的結尾開始計算索引。

  1. siblings()

作用:方法返回被選元素的所有同級元素。同級元素是共享相同父元素的元素。

方法名 作用
$(selector).siblings(filter) filter 可選。規定縮小搜索同級元素范圍的選擇器表達式。

  1. index()

作用:方法返回指定元素相對於其他指定元素的 index 位置,這些元素可通過 jQuery 選擇器或 DOM 元素來指定。

方法名 作用
$(selector).index() 獲得第一個匹配元素相對於其同胞元素的 index 位置。
$(selector).index(element) 獲得元素相對於選擇器的 index 位置
element,規定要獲得 index 位置的元素。可以是 DOM 元素或 jQuery 選擇器。

注意:如果未找到元素,index() 將返回 -1。

  1. height()

作用:height() 方法設置或返回被選元素的高度。

方法名 作用
$(selector).height() 用於返回高度:返回第一個匹配元素的高度
$(selector).height( value) 用於設置高度:對於em, pt, etc要使用"",px為默認單位,直接寫數值
$(selector).height(function (index,currentheight)) value - 當設置高度時是必需的。規定元素的高度,單位為 px、em、pt 等。
function(index,currentheight) - 可選。規定返回被選元素新高度的函數。index - 返回集合中元素的 index 位置。currentheight - 返回被選元素的當前高度。

注意:如果未找到元素,index() 將返回 -1。

  1. trim()

作用:$.trim() 函數用於去除字符串兩端的空白字符。

方法名 作用
$.trim( str ) str 必選。String 類型,需要去除兩端空白字符的字符串。

注意:$.trim()函數會移除字符串開始和末尾處的所有換行符,空格(包括連續的空格)和制表符。如果這些空白字符在字符串中間時,它們將被保留,不會被移除。

2. jQuery 常用 DOM 節點操作方法(添加、刪除、復制節點)

  1. 添加節點
方法名 作用
$(selector).append() 指定元素內部添加,在被選元素的結尾插入內容
$(selector).prepend() 指定元素內部添加,在被選元素的開頭插入內容
$(selector).after() 指定元素外部添加,在被選元素之后插入內容
$(selector).before() 指定元素外部添加,在被選元素之前插入內容

  1. 刪除節點
方法名 元素所綁定的事件及數據是否也被移除 作用
$(selector).empty() 從被選元素中刪除子元素,刪除的是子節點,自身不變。empty()函數的返回值為jQuery類型,返回當前jQuery對象本身(以便於進行鏈式風格的編程)。
$(selector).remove() 刪除被選元素(及其子元素),這個方法不會把匹配的元素從jQuery對象中刪除,因而可以在將來再使用這些匹配的元素。但除了這個元素本身得以保留之外,其他的比如綁定的事件,附加的數據等都會被移除。remove()函數的返回值為jQuery類型,返回當前jQuery對象本身。
$(selector).detach() 刪除被選元素(及其子元素),事件和附加數據保留。detach()函數的返回值為jQuery類型,返回當前jQuery對象本身。

  1. 復制節點
方法名 作用
$(selector).clone() 復制所匹配的元素

  1. 替換節點
方法名 作用
$(selector).replaceWith() 將所有匹配的元素用特定內容替換
$(selector).replaceAll() 作用相同,顛倒了主賓關系

3. jQuery 元素屬性操作的方法

3.1 操作 class 屬性

  1. addClass()

作用:addClass() 方法向被選元素添加一個或多個類名。

方法名 作用
$(selector).addClass(classname) classname - 必需。該方法不會移除已存在的 class 屬性,僅僅添加一個或多個類名到 class 屬性。
提示:如需添加多個類,請使用空格分隔類名。
$(selector).addClass(
classname,function(index,oldclass))
function() - 可選。規定返回一個或多個待添加類名的函數。
index - 返回集合中元素的 index 位置。currentclass - 返回被選元素的當前類名。

  1. removeClass()

作用:removeClass() 方法從被選元素移除一個或多個類。

方法名 作用
$(selector).addClass(classname) classname - 可選。規定要移除的一個或多個類名稱。如需移除若干個類,請使用空格分隔類名稱。
注意: 如果該參數為空,則將移除所有類名稱。
$(selector).removeClass(
classname,function(index,currentclass))
function() - 可選。規定返回一個或多個待添加類名的函數。
index - 返回集合中元素的 index 位置。currentclass - 返回被選元素的當前類名。

注意:如果沒有規定參數,則該方法將從被選元素中刪除所有類。

  1. hasClass()

作用:hasClass() 方法檢查被選元素是否包含指定的類名稱。

方法名 作用
$(selector).hasClass(classname) classname - 必需。規定需要在被選元素中查找的類。

注意:如果沒有規定參數,則該方法將從被選元素中刪除所有類。

  1. toggleClass()

作用:toggleClass() 方法對添加和移除被選元素的一個或多個類進行切換。該方法檢查每個元素中指定的類。如果不存在則添加類,如果已設置則刪除。這就是所謂的切換效果。然而,通過使用 “switch” 參數,您能夠規定只刪除或只添加類。

方法名 作用
$(selector).toggleClass(classname,
function(index,currentclass),switch)
classname - 必需。規定添加或移除的一個或多個類名。如需規定若干個類,請使用空格分隔類名。
function() 可選。規定返回需要添加/刪除的一個或多個類名的函數。
index - 返回集合中元素的 index 位置。
currentclass - 返回被選元素的當前類名。
switch - 可選。布爾值,規定是否僅僅添加(true)或移除(false)類。

注意:如果沒有規定參數,則該方法將從被選元素中刪除所有類。

3.2 操作 value 屬性

  1. val()

作用:val() 方法返回或設置被選元素的 value 屬性。

方法名 作用
$(selector).val() 用於返回值:該方法返回第一個匹配元素的 value 屬性的值
$(selector).val() 用於設置值:該方法設置所有匹配元素的 value 屬性的值\

注意:val() 方法通常與 HTML 表單元素一起使用。

3.3 操作 css 屬性

  1. css()

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

方法名 作用
css(“propertyname”) 返回指定的 CSS 屬性的值(無指定則返回第一個)
css(“propertyname”, “value”) 設置指定的 CSS 屬性值(無指定則設置全部)

3.4 操作 prop 屬性

  • prop()
  • 作用
    1)prop() 方法設置或返回被選元素的屬性和值。
    2)當該方法用於返回屬性值時,則返回第一個匹配元素的值。
    3)當該方法用於設置屬性值時,則為匹配元素集合設置一個或多個屬性/值對。
方法名 作用 參數描述
$(selector).prop(property) 返回屬性的值 property - 規定屬性的名稱
$(selector).prop(property,value) 設置屬性和值 property - 規定屬性的值
$(selector).prop(property,
function(index,currentvalue))
使用函數設置屬性和值 function(index,currentvalue) - 規定返回要設置的屬性值的函數;
index - 檢索集合中元素的 index 位置;
currentvalue - 檢索被選元素的當前屬性值
$(selector).prop({property:value, property:value,…}) 設置多個屬性和值 property - 規定屬性的名稱

注意:prop() 方法應該用於檢索屬性值,例如(selected、checked)

3.5 操作 data 屬性

  • data()

作用:data 方法,針對 data- 開頭的屬性的獲取,若值是 JSON 格式, 自動轉成 JS 對象。

方法名 作用 參數描述
$(selector).data(name) 從被選元素中返回附加的數據 name - 可選,為data-后面的名稱。規定要取回的數據的名稱;
如果沒有規定名稱,則該方法將以對象的形式從元素中返回所有存儲的數據。
$(selector).data(name,value) 向被選元素附加數據 name - 必需。規定要設置的數據的名稱;
value - 必需。規定要設置的數據的值。

代碼演示

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鳥教程(runoob.com)</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script>
<script> $(document).ready(function(){ testObj=new Object(); testObj.greetingMorn="Good Morning!"; testObj.greetingEve="Good Evening!"; $("#btn1").click(function(){ $("div").data(testObj); }); $("#btn2").click(function(){ alert($("div").data("greetingEve")); }); }); </script>
</head>
<body>
<button id="btn1">將數據附加到div元素</button><br>
<button id="btn2">獲取數據附加到div元素</button>
<div></div>
</body>
</html>

3.5 操作 attr 屬性

  • attr()

作用:attr() 方法設置或返回被選元素的屬性和值。

方法名 作用 參數
$(selector).attr(attribute) name - 可選。返回第一個匹配元素的值 attribute - 規定屬性的名稱
$(selector).attr(attribute,value) 為匹配元素設置一個或多個屬性/值對 value - 規定屬性的值
$(selector).attr(attribute,function( index,currentvalue)) 可選。返回第一個匹配元素的值 規定要返回屬性值到集合的函數
index - 接受集合中元素的 index 位置
currentvalue - 接受被選元素的當前屬性值
$(selector).attr({attribute: value,attribute: value,…} 為匹配元素設置一個或多個屬性/值對

小結下面是每個屬性對應方法的選取

<script> $(function () { // css 方法針對 style 屬性 console.log($('#gender').css('color')); // val 方法針對 value 屬性 console.log($('#gender').val()); // addClass 方法、removeClass 方法,針對 class 屬性 $('#gender').addClass('other'); $('#gender').removeClass('other'); // prop 方法針對 checked 屬性 selected 屬性 console.log($('#gender').prop('checked')); $('#gender').prop('checked', false) // data 方法,針對 data- 開頭的屬性的獲取,若值是 JSON 格式, 自動轉成 JS 對象 console.log($('#gender').data('option')); // 其他情況使用 attr 方法 }); </script>

4. jQuery中each的三種遍歷方法

jQuery中each的三種遍歷方法:博客地址

四、jQuery 選擇器

1. 基本選擇器

實例 選取
$("*") 所有元素
$("#lastname") id=“lastname” 的元素
$(".intro") 所有 class=“intro” 的元素
$(“p”) 所有 p 元素
$(".intro.demo") 所有 class=“intro” 且 class=“demo” 的元素

2. 屬性選擇器

實例 選取
$("[href]") 所有帶有 href 屬性的元素
$("[href=’#’]") 所有 href 屬性的值等於 “#” 的元素
$("[href!=’#’]") 所有 href 屬性的值不等於 “#” 的元素
$ ("[href$=’.jpg’]") 所有 href 屬性的值包含以 “.jpg” 結尾的元素
$(“th,td,.intro”) 所有帶有匹配選擇的元素
$(":selected") :selected 選擇器選取被選擇的 option 元素
$(":checked") :checked 選擇器選取被選擇的 checkbox/radio 元素

案例代碼:

<script> // 定義一個數組接受復選框里面的 value 值 var ids = []; $('input[name=ids]:checked').each(function () { // 把被選中的 checkbox 中的 value 值添加到數組中 ids.push(this.value); }); // 判斷 復選框是否有被選中的 if ($('input[name=ids]:checked').length > 0) { $.ajax({ url: "/Xxx", type: "POST", data_type: 'json', data: { // JSON.stringify(value[, replacer[, space]]),轉成 JSON 字符串,為空則請求失敗 // "ids": JSON.stringify(ids), "ids": ids, }, traditional: true,//這里設置為true success: function(data) { // 刪除被選中的復選框元素 $('input[name=ids]:checked').parent().parent().remove(); } }); } </script>
<tbody>
	<#list consumptionItems as consumptionItem>
	    <tr>
	        <td><input type="checkbox" name="ids" value="${consumptionItem.id}"></td>
	        <td>${consumptionItem.name}</td>
	        <td>${consumptionItem.createDate}</td>
	    </tr>
	</#list>
</tbody>

3. 層次選擇器

實例 選取
$("#myid a") 獲取所有子孫后代元素列表
$("#myid>a") 獲取一級子元素列表(不包含孫元素)
$("#myid+a") 獲取緊接在之后的同輩元素列表,等價於$("#myid>a").next(“a”)
$("#myid~a") 獲取之后的所有同輩元素列表,等價於$("#myid").nextAll(“a”)
$("#myid").siblings(“a”) 獲取所有同輩元素列表,無論前后
$("#myid").prev(“a”) 獲取緊接在之后的同輩元素列表
$("#myid").find(“a”) 獲取后代元素中所有的a(包含子孫后代)

案例代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>jQuery 層次選擇器</title>
    <script type="text/javascript" src="/static/jQuery-1.11/jquery-1.11.3.min.js"> </script>
    <style type="text/css"> .selected{background-color: gray;}</style>
    <script> $(function () { // 問題 1:獲取所有 ul 下的所有 li 元素,並打印分析結果 console.log($('ul li')); // 輸出了 8 個 li,中間空格表示獲取所有子孫后代 li 元素 // 問題 2:獲取 id 為 myul 下的所有一級 li 子元素,並打印分析結果 console.log($('#myul > li')); // 輸出了 4 個 li,中間 > 表示獲取一級子元素 // 問題 3:獲取所有 label 元素后的 input 元素,並打印分析結果 console.log($('label ~ input')); // 輸出結果為(text1、text2、text3、text4) // 問題 4:獲取緊跟着 label 元素后的 input 元素,並打印分析結果 console.log($('label + input')); // 輸出結果為(text1、text3) }); </script>
</head>
<body>
<ul id="myul">
    <li>item1</li>
    <li>item2</li>
    <li>item3</li>
    <li>
        <ul>
            <li>item1</li>
            <li>item2</li>
            <li>item3</li>
            <li>item4</li>
        </ul>
    </li>
</ul>
<label>LABEL1</label>
<input type="text" value="text1"/>
<input type="text" value="text2"/>
<br/>
<label>LABEL2</label>
<input type="text" value="text3"/>
<input type="text" value="text4"/>
<br/>
<label>
    LABEL3
    <input type="text" value="text5"/>
    <input type="text" value="text6"/>
</label>
</body>
</html>

4. 過濾選擇器

實例 選取
$(“p:first”) 第一個 p 元素
$(“p:last”) 最后一個 p 元素
$(“tr:even”) 所有偶數 tr 元素
$(“tr:odd”) 所有奇數 tr 元素
$(“ul li:eq(3)”) 列表中的第四個元素(index 從 0 開始)
$(“ul li:gt(3)”) 列出 index 大於 3 的元素
$(“ul li:lt(3)”) 列出 index 小於 3 的元素
$(“input:not(:empty)”) 所有不為空的 input 元素
$(":header") 所有標題元素 h1 - h6
$(":contains(‘W3School’)") 包含指定字符串的所有元素
$(“p:hidden”) 所有隱藏的

元素

5. 表單元素獲取

實例 選取
$(":input") 所有 元素
$(":text") 所有 type=“text” 的 元素
$(":password") 所有 type=“password” 的 元素
$(":radio") 所有 type=“radio” 的 元素

五、DOM節點

博客地址:DOM節點的使用(常用方法+代碼)

六、綜合小例題

例題一:JS實現列表移動(通過document操作select標簽)
例題二:用 JS(JavaScript )實現增刪改查
例題三:用 JS(JavaScript )實現多選框的全選、反選、多選
例題四:jQuery 實現全選、多選、反選
例題五:JS 實現下拉框回顯
例題六:JS 實現列表移動
例題七:JS 實現下拉框去重

總結

以上就是對 JavaScript 入門的總結了,代碼僅供參考,歡迎討論交流。
DOM節點的應用請看這篇博客:DOM節點的使用(常用方法+代碼)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM