jQuery的核心功能選擇器

来源:https://www.cnblogs.com/chenyingying0/archive/2020/02/16/12317805.html
-Advertisement-
Play Games

選擇器是jquery的核心 jquery選擇器返回的對象是jquery對象,不會返回undefined或者null,因此不必進行判斷 基本選擇器: ID選擇器 $("#ID") element選擇器(標簽選擇器)$("標簽") 如 $("div") 獲取具體的標簽,使用數組下標的方式 $("div" ...


選擇器是jquery的核心

jquery選擇器返回的對象是jquery對象,不會返回undefined或者null,因此不必進行判斷


 

基本選擇器:

ID選擇器  $("#ID")

element選擇器(標簽選擇器)$("標簽")  如 $("div") 

獲取具體的標簽,使用數組下標的方式  $("div")[index]

獲取當前元素的索引值 $(this).index()  

class選擇器  $(".類名")  

通配符選擇器 $("*")  匹配所有元素,儘量不要用,效率比較低


 

多項選擇器:

$("selector1, selector2, selector3...")  合併返回,每個選擇器之間用逗號隔開

如果不同選擇器的內容之間有重覆,會自動捨去重覆

返回的數組中的順序是根據DOM中元素的順序,而不是根據選擇器的順序


 

層級選擇器

祖先後代選擇器: $("父元素 子孫元素")  中間用空格分開

如:獲取aside裡面的summary元素

var summaries=$("aside summary");

直接後代選擇器:$("父元素>子元素")  中間用 >

如:獲取aside下麵的直接子元素summary

var summaries=$("aside>summary");

親密兄弟選擇器:$("兄元素+弟元素")  獲取兄元素後面緊跟的一個弟元素

如:獲取aside後面緊跟的details元素

var summaries=$("aside+details");

兄弟選擇器: $("兄元素~弟元素")  獲取兄元素後面的所有弟元素

如:獲取aside後面出現的所有兄弟元素details

var summaries=$("aside~details");

屬性選擇器:

[attribute]  包含該屬性的元素,如:$("[class]")

[attribute=value]  屬性值等於指定值的元素,如:$("[class=tool]")

[attribute!=value]  屬性值不等於指定的元素,如:$("[class!=tool]")

[attribute^=value]  屬性值以指定元素開頭,是單詞的開頭部分,如:$("[class^=tool]")

[attribute$=value]  屬性值以指定元素結束,是單詞的結束部分,如:$("[class$=tool]")

[attribute*=value]   屬性值包含指定元素,可以是單詞的一部分,也可以是一個單獨的單詞,如:$("[class*=tool]")

[attribute~=value]  常用於多個class的情況,只要其中一個class是指定值,是一個完整的單詞,如:$("[class~=tool'")

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            var div1=$("[class~=one]");//取到1
            console.log(div1);

            var div2=$("[class*=one]");//取到1和2
            console.log(div2);
        })
    </script>
</head>
<body>
<div class="tool one">1</div>
<div class="tool tool_one">2</div>

</body>
</html>

 

[selector1][selector2][selector3]  多個屬性選擇器,如:$("[type][class=tool]")


 

過濾器之child系列(最大特點必須是指定元素):

ele:first-child  其父元素的第一個子元素,且剛好是指定元素

ele:last-child 其父元素的最後一個子元素,且剛好是指定元素

ele:nth-child(n | even | odd | 計算式)  其父元素的第n個子元素,且剛好是指定元素(此處下標從1開始)

ele:nth-last-child(n | even |odd | 計算式) 其父元素的倒數第n個子元素,且剛好是指定元素(此處下標從1開始)

ele:only-child  是其父元素的唯一子元素,且是指定元素


 

過濾器之type系列(最大特點計數時自動跳過非指定元素):

ele:first-of-type  其父元素的第一個指定子元素(計數時可以自動跳過非指定元素)

ele:last-of-type 其父元素的最後一個指定子元素

ele:nth-of-type(n)  其父元素的第n個指定子元素

ele:nth-last-of-type  其父元素的倒數第n個指定子元素

ele:only-of-type  其父元素的唯一指定子元素


 

child和type系列對比

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            var p=$("p:only-child()");//p的父元素只有一個子元素,且是p標簽
            console.log(p);

            var p2=$("p:only-of-type()");//p的父元素的子元素中,只有一個p標簽,允許有其他標簽
            console.log(p2);
        })
    </script>
</head>
<body>

<div>
    <p>p</p>
    <span>span</span>
</div>

</body>
</html>

過濾器參數

ele:nth-child(n)  n必須為整數,從1開始

ele:nth-of-type(n) 

ele:nth-child(even)  偶數項

ele:nth-of-type(even)

ele:nth-child(odd)  奇數項

ele:nth-of type(odd)

ele:nth-child(3n+4)  類似特殊公式

ele:nth-of-type(3n+4)

小案例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $("p:nth-of-type(even)").css({"background":"#abcdef"});
            $("p:nth-of-type(odd)").css({"background":"pink"});
        })
    </script>
</head>
<body>

<div>
    <p>慕道威儀立善緣</p>
    <p>課童更渫牆西井</p>
    <p>網羅文獻吾倦矣</p>
    <p>恭請光堯壽聖來</p>
    <p>祝教壽比天難盡</p>
    <p>學畫鴉兒猶未就</p>
    <p>習氣若為除未盡</p>
    <p>愉貴神兮般以樂</p>
    <p>快風涼雨火雲摧</p>
</div>

</body>
</html>

 

 表單相關選擇器:

:input  可以選擇input  textarea  select  button

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $(":input").css({"background":"#abcdef"});
        })
    </script>
</head>
<body>

<form>
    input:text<input type="text"><br>
    select<select>
        <option></option>
    </select><br>
    textarea<textarea></textarea><br>
    input:submit<input type="submit" value=""><br>
    button<button>按鈕</button>
</form>

</body>
</html>

 

 :text  =  input[type="text"]  匹配所有單行文本框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $(":text").css({"background":"#abcdef"});
        })
    </script>
</head>
<body>

<form>
    input:text<input type="text"><br>
    select<select>
        <option></option>
    </select><br>
    textarea<textarea></textarea><br>
    input:submit<input type="submit" value=""><br>
    button<button>按鈕</button>
</form>

</body>
</html>

 

 其他type類型也是同理,如:

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

其中發現:submit也選中了button元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $(":password").css({"background":"#abcdef"});
            $(":file").css({"background":"pink"});
            $(":submit").css({"background":"orange"});
        })
    </script>
</head>
<body>

<form>
    input:text<input type="text"><br>
    input:password<input type="password"><br>
    input:file<input type="file"><br>
    select<select>
        <option></option>
    </select><br>
    textarea<textarea></textarea><br>
    input:submit<input type="submit" value=""><br>
    button<button>按鈕</button>
</form>

</body>
</html>

 

 表單狀態相關選擇器:

:enabled 可用元素

:disabled 不可用元素

:checked  選中元素(除了checkbox和radio中被checked元素,還有option中被selected的元素)

:selected 選中option中被selected的元素


 

查找和過濾選擇器

.find("元素")  搜索與指定表達式匹配的元素(類似祖先後代子孫選擇器)

.children("元素")  搜索與指定表達式匹配的元素(類似直接父子元素選擇器)

.parent("元素")  搜索一個元素的父元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $("details").find("p").css({"background":"#abcdef"});//內容1和內容2
            $("details").children("p").css({"color":"orange"});//內容1
        })
    </script>
</head>
<body>

<details>
    <summary>標題1</summary>
    <p>內容1
        <div>
            <p>內容2</p>
        </div>
    </p>
</details>

</body>
</html>

 

 .next() 緊跟在元素後面的直接兄弟元素

.prev() 緊跟在元素前面的直接兄弟元素

.eq(n) 元素返回的數組中第n個元素,下標是從0開始的;如果n是負數,就是倒數

.siblings() 元素的所有同級兄弟元素(前面後面都可以,不包括元素本身),中間可以加選擇器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $(".p").next().css({"background":"#abcdef"});
            $(".p").prev().css({"background":"pink"});
            $("p").eq(2).css({"background":"orange"});
            $("p").eq(-1).css({"background":"lightgreen"});
            $(".p").siblings().css({"font-style":"italic"});
            $(".p").siblings("[id]").css({"font-weight":"bold"});
        })
    </script>
</head>
<body>

<div>
    <p>1</p>
    <p id="p2">2</p>
    <p class="p">3</p>
    <p id="p4">4</p>
    <p>5</p>
</div>

</body>
</html>

 

 .filter(expr | object | element | fn)  參數如果用 [ ] 表示為可選參數

expr 字元串值,選擇器表達式,如:filter( ".class" )

object 現有的jquery對象,如:filter( $(".class") )

element  DOM元素,如:fliter( document.getElementById("class") ) 

fn 函數的返回值(index是filter方法的預設參數,表示當前元素的索引值)

expr | object | element 其實都是通過選擇器查找的意思

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $("p").filter(function(index){
                console.log(index);
            });
        })
    </script>
</head>
<body>

<div>
    <p>1</p>
    <p id="p2">2</p>
    <p class="p">3</p>
    <p id="p4">4</p>
    <p>5</p>
</div>

</body>
</html>

 

 filter的另一種用法:

        var arr=[2,5,33];
        function fn(num){
            return num>18;//返回大於18的元素
        }
        var res=arr.filter(fn);
        console.log(res);//[33]
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="jquery.js"></script>
    <script>
        $(function(){
            $("div").filter(function(index){
                //在當前對象內,尋找P元素的個數為1的div
                return $(
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文針對常用控制項(Textview、Button、EditText、RadioButton、CheckBox、ImageView)進行簡單說明 ...
  • 1、雲資料庫 一、介紹 雲開發提供了一個 JSON 資料庫,顧名思義,資料庫中的每條記錄都是一個 JSON 格式的對象。一個資料庫可以有多個集合(相當於關係型數據中的表),集合可看做一個 JSON 數組,數組中的每個對象就是一條記錄,記錄的格式是 JSON 對象。 關係型資料庫和 JSON 資料庫的 ...
  • 1、工具下載 官方鏈接:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 我選用的是穩定版 macOS 2、項目創建 一、掃碼登錄開發工具 二、點擊小程式創建項目 我這裡選擇是小程式雲開發,appid是登錄 ...
  • 現在Chrome瀏覽器已經很好的支持ES6了,但有些低版本的瀏覽器或其他瀏覽器還是不支持ES6的語法,因此實際項目開發或上線過程中就需要把ES6的語法轉變成ES5的語法。項目開發過程中 Webpack 有自動編譯轉換功能,因此免去了環境搭建這一步。但除了Webpack自動編譯外,我們還可以用Babe ...
  • 滑鼠事件 .click 滑鼠單擊 .dblclick 滑鼠雙擊 // 單擊事件 $("a").click(function(){ $("img").eq($(this).index()) // 獲取當前點擊的a的index .css({"opacity":"1"}) .siblings() .css ...
  • 一、var和let var已經在JavaScript中存在很長一段時間了,但是它存在了一些不足的地方,接下來我們就來看看吧 首先var存在變數提升,這是怎麼一回事呢,我們看下麵代碼 為什麼是它呢,是因為變數a提升到前面去了,所以輸出了這個結果 接下來我們再看let 初始化無法訪問到 a let是不是 ...
  • 由於程式都是自上向下的順序執行的,所以通過流程式控制制語句可以改變程式執行的順序,或者反覆的執行某一段的程式。 語句的分類 1. 條件判斷語句 2. 條件分支語句 3. 迴圈語句 條件判斷語句 條件判斷語句也稱為if語句 語法一: if(條件表達式){ 語句... } 執行流程:if語句執行時,會先對條 ...
  • java的基本數據類型一共有 byte short int long float double char boolean js中定義變數使用關鍵字 var js的原始類型(五個) String: 字元串 在字元串中我們可以使用\作為轉移符號。比如 \" ",\' ',\\ \,\n 表示換行 Num ...
一周排行
    -Advertisement-
    Play Games
  • 1. 說明 /* Performs operations on System.String instances that contain file or directory path information. These operations are performed in a cross-pla ...
  • 視頻地址:【WebApi+Vue3從0到1搭建《許可權管理系統》系列視頻:搭建JWT系統鑒權-嗶哩嗶哩】 https://b23.tv/R6cOcDO qq群:801913255 一、在appsettings.json中設置鑒權屬性 /*jwt鑒權*/ "JwtSetting": { "Issuer" ...
  • 引言 集成測試可在包含應用支持基礎結構(如資料庫、文件系統和網路)的級別上確保應用組件功能正常。 ASP.NET Core 通過將單元測試框架與測試 Web 主機和記憶體中測試伺服器結合使用來支持集成測試。 簡介 集成測試與單元測試相比,能夠在更廣泛的級別上評估應用的組件,確認多個組件一起工作以生成預 ...
  • 在.NET Emit編程中,我們探討了運算操作指令的重要性和應用。這些指令包括各種數學運算、位操作和比較操作,能夠在動態生成的代碼中實現對數據的處理和操作。通過這些指令,開發人員可以靈活地進行算術運算、邏輯運算和比較操作,從而實現各種複雜的演算法和邏輯......本篇之後,將進入第七部分:實戰項目 ...
  • 前言 多表頭表格是一個常見的業務需求,然而WPF中卻沒有預設實現這個功能,得益於WPF強大的控制項模板設計,我們可以通過修改控制項模板的方式自己實現它。 一、需求分析 下圖為一個典型的統計表格,統計1-12月的數據。 此時我們有一個需求,需要將月份按季度劃分,以便能夠直觀地看到季度統計數據,以下為該需求 ...
  • 如何將 ASP.NET Core MVC 項目的視圖分離到另一個項目 在當下這個年代 SPA 已是主流,人們早已忘記了 MVC 以及 Razor 的故事。但是在某些場景下 SSR 還是有意想不到效果。比如某些靜態頁面,比如追求首屏載入速度的時候。最近在項目中回歸傳統效果還是不錯。 有的時候我們希望將 ...
  • System.AggregateException: 發生一個或多個錯誤。 > Microsoft.WebTools.Shared.Exceptions.WebToolsException: 生成失敗。檢查輸出視窗瞭解更多詳細信息。 內部異常堆棧跟蹤的結尾 > (內部異常 #0) Microsoft ...
  • 引言 在上一章節我們實戰了在Asp.Net Core中的項目實戰,這一章節講解一下如何測試Asp.Net Core的中間件。 TestServer 還記得我們在集成測試中提供的TestServer嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。 ...
  • 在發現結果為真的WHEN子句時,CASE表達式的真假值判斷會終止,剩餘的WHEN子句會被忽略: CASE WHEN col_1 IN ('a', 'b') THEN '第一' WHEN col_1 IN ('a') THEN '第二' ELSE '其他' END 註意: 統一各分支返回的數據類型. ...
  • 在C#編程世界中,語法的精妙之處往往體現在那些看似微小卻極具影響力的符號與結構之中。其中,“_ =” 這一組合突然出現還真不知道什麼意思。本文將深入剖析“_ =” 的含義、工作原理及其在實際編程中的廣泛應用,揭示其作為C#語法奇兵的重要角色。 一、下劃線 _:神秘的棄元符號 下劃線 _ 在C#中並非 ...