jQuery的first()、last()、eq()、filter()和not()方法過濾元素

2021-01-07 一都編程

01第1節:jQuery過濾概述

在jQuery中,針對Html元素封裝了一系列的遍歷方法,有遍歷祖先的parent()/parents(),還有遍歷子孫的children()/find(),也有遍歷同胞的siblings()/next()/prev()等等。

這裡我們主要來學習jQuery的過濾操作,也是對Html DOM進行遍歷的,但是其功能更強大,查找的元素更精細。

與jQuery過濾相關的操作方法有3個,分別為:

First()方法:獲取第一個元素。Last()方法:獲取最後一個元素。Eq()方法:獲取相等的元素。Filter()方法:根據條件篩選元素。Not()方法:獲取不匹配的元素。

02第2節:first()方法

在jQuery中,使用first()方法獲取當前元素所在集合的第一個元素,first()方法只能返回單個的一個Html元素。

我們可以使用jQuery選擇器獲取一個Html元素的集合,然後再使用first()得到集合中的第一個元素。

現在舉一個例子,演示一下first()方法的使用:

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="jquery-3.3.1.js"></script><script type="text/javascript">$().ready(function () {var p = $("div p").first().css("background-color", "red");console.log(p);});</script></head><body><div id="div1"><p id="p1">P0001</p><p id="p2">P0002</p></div></body></html>

此html代碼先使用$(「div p」)得到div標籤下的所有p元素,然後再使用first()方法得到第一個p元素,最後又使用了css()方法給得到的第一個p元素添加背景色。

運行結果如下:

圖1

從運行的結果上看,確實是給第一個p元素添加了背景色,使用first()方法實現了獲取第一個元素的功能。

03第3節:last()方法

使用jQuery中的last()方法可以獲取當前所選元素集合中的最後一個元素。

使用last()方法定位的只能是一個元素,且是元素集合中的最後一個元素。

使用last()方法得到最後一個元素的代碼如下:

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="jquery-3.3.1.js"></script><script type="text/javascript">$().ready(function () {var p = $("div p").last().css("background-color", "red");console.log(p);});</script></head><body><div id="div1"><p id="p1">P0001</p><p id="p2">P0002</p><p id="p3">P0003</p></div></body></html>

此代碼只是將first()方法的案例中,使用last()方法得到最後一個元素,同樣也是使用css()方法添加背景色。

圖2

在圖2中的結果中,是將最後一個P元素添加了背景色為紅色。使用last()方法得到的是id=p3的元素。

04第4節:eq()方法

在jQuery中,使用eq()方法可以在Html元素集合中根據索引值來獲取元素,索引值是從0開始的,因此第一個Html元素的索引值是 0而不是1。

當使用jQuery選擇器得到一個元素集合後,每個元素都會給一個編號,這個編號就是從0開始的。

因此,使用eq()方法就可以根據編號來獲取Html元素。

在jQuery中使用eq()方法的代碼如下:

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="jquery-3.3.1.js"></script><script type="text/javascript">$().ready(function () {var p = $("div p").eq(1).css("background-color", "red");console.log(p);});</script></head><body><div id="div1"><p id="p1">P0001</p><p id="p2">P0002</p><p id="p3">P0003</p></div></body></html>

在此代碼中,使用了$(「div p」)得到了3個p元素,而使用eq(1)得到編號為1的p元素,其實就是集合中第2個p元素。

將上面的代碼運行結果如下:

圖3

在圖3中,得到的P元素是第2個,它的編號是1。

05第5節:filter()方法

使用jQuery中的filter()方法可以在Html元素集合中篩選指定元素,可以根據標籤名、id、class等屬性獲取指定元素。

使用jQuery的filter()方法篩選元素的代碼如下:

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="jquery-3.3.1.js"></script><script type="text/javascript">$().ready(function () {var p = $("div p").filter(".pu");console.log(p);});</script></head><body><div id="div1"><p id="p1">P0001</p><p id="p2">P0002</p><p id="p3">P0003</p></div></body></html>

在這裡,使用了filter(「.pu」)來篩選元素,.pu表示class的樣式為pu的元素。

運行結果如下:

圖4

在圖4中,我們得到了2個元素,這2個元素是p2和p3,且它們都帶有class=「pu」屬性和值,正好與filter(「.pu」)相匹配。

06第6節:not()方法

在jQuery中,有一個方法與filter()方法得到的結果正好相反,它就是not()方法。

Not()方法的含義是指將不匹配的元素返回,而filter()方法是將匹配的元素返回。

<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title></title><script src="jquery-3.3.1.js"></script><script type="text/javascript">$().ready(function () {var p = $("div p").not(".pu");console.log(p);});</script></head><body><div id="div1"><p id="p1">P0001</p><p id="p2">P0002</p><p id="p3">P0003</p></div></body></html>

在此Html代碼中,使用了not(「.pu」)來篩選元素,會得到class不是pu的所有元素。

運行一下上面的代碼:

圖5

在上圖的結果中,得到了1個元素,因為另外2個元素都帶有class=「pu」,而p1元素沒有class屬性,因此,使用not(「pu」)返回了p1元素。

相關焦點

  • jquery選擇器
    ` parents() 方法返回被選元素的所有祖先元素,它一路向上直到文檔的根元素 (<html>)` parentsUntil() 方法返回介於兩個給定元素之間的所有祖先元素 例$(this).parents('.parents') //當前元素的所有父級元素中類名為parents的元素
  • jQuery常用方法歸納總結
    .eq():從集合的一個元素中構造新的jQuery對象eq返回的是一個jQuery對象,get返回的是一個DOM對象。"black");filter()filter()方法:篩選出與指定表達式匹配的元素集合。
  • JQuery
    onfocus 元素獲得焦點 onchange 用戶改變域的內容 使用注意事項:在 jQuery 中將事件封裝成了對應的方法,去掉了JS中的 .on 語法, 例如使用onclick時只需要使用click即可2.2.2 事件的綁定和解綁 綁定事件 jquery對象.on("事件名稱",執行的功能); 解綁事件 jquery對象
  • 從零開始學習jQuery (二) 萬能的選擇器
    . jQuery包裝集擁有豐富的屬性和方法, 這些都是jQuery特有的:jQuery選擇器按照功能主要分為"選擇"和"過濾". 並且是配合使用的. 可以同時使用組合成一個選擇器字符串. 主要的區別是"過濾"作用的選擇器是指定條件從前面匹配的內容中篩選, "過濾"選擇器也可以單獨使用, 表示從全部"*"中篩選.
  • 前端JQuery知識體系詳解
    jQuery庫包含:HTML元素的獲取,HTML元素操作,css的操作,HTML事件函數,JavaScript特效和動畫,HTML dom的遍歷和修改,ajax,utilities。jQuery 選擇器元素選擇器,#id選擇器,.class選擇器$("p:first") 選取第一個 <p> 元素$("ul li:first") 選取第一個 <ul> 元素的第一個 <li> 元素$("ul li:first-child") 選取每個 <
  • Jquery attr()方法 屬性賦值和屬性獲取
    jquery中用attr()方法來獲取和設置元素屬性,attr是attribute(屬性)的縮寫,在jQuery DOM操作中會經常用到attr
  • jQuery選擇器的分類
    {在後面的兩個層次選擇器在jQuery中可以使用更簡便的方法代替:可以使用next()方法來代替$(".one+div")>>>$(".one").next("div"); 可以使用nextAll()方法來代替$("#two~div")>>>$(".two").nextAll("div")。}過濾選擇器:主要是通過特定的過濾規則來篩選出所需要的元素。
  • 用jQuery做自動化測試是怎樣一種感覺
    就元素定位方法,除了我們常用並熟知的8種元素定位方法之外,還有一種定位方法可以說是一種特殊的存在。那就是JQuery定位,是常用8種定位之外的方法,相對於js定位,JQuery語法比較簡潔一些,而且方便快捷。二、關於jQuery 語法jQuery 語法是為 HTML 元素的選取編制的,可以對元素執行某些操作。
  • 使用jQuery的remove()和empty()方法刪除Html元素及子元素和內容
    一、remove()方法在jQuery中,使用封裝好的remove()方法可以刪除掉當前所選元素及其子元素。也就是將當前所選元素和該元素下的所有子元素全部刪除。jquery remove()方法此時,在圖2中,我們看到的元素結構中,id=div1和它的子元素全部刪除掉了。
  • 1+X Web JQuery基礎
    =value]匹配給定的屬性不是...的元素[attribute^=value] 匹配給定的屬性以..開頭的元素[attribute$=value] 配給定的屬性以..結尾的元素[attribute*=value] 匹配包含給定值的元素2.3 位置選擇器:first匹配第一個元素 :last獲取最後一個元素 :not
  • jQuery的attr()、append()、after()和before()方法操作HTML元素
    如:<input id=」txtId」 type=」text」/>,在此標記中,id和type都是屬性名,賦值號(=)後面用雙引號括起來的是屬性值。在jQuery中,使用封裝好的attr()方法可以獲取Html元素的屬性的值和給Html屬性設置值。
  • 《鋒利的jQuery》讀記要點之jQuery選擇器
    ")有區別,前者選擇所有後代元素(含且不限於子層級)$('prev + next'):選取緊接在prev元素後的next元素$('prev ~ siblings'):選取prev元素之後的next元素3 過濾選擇器3.1 基本過濾選擇器$("selector:first
  • 第八篇:jQuery的使用及元素選擇器
    使用jQuery庫在jQuery腳本代碼中使用$符號代替jQuery,無論是頁面元素的選擇還是內置的功能方法,都是以一個美元符號「$」和一對圓括號開始,其實,「$()」方法是jQuery庫中最重要、最核心的方法jQuery()的簡寫,主要用來選擇頁面元素或執行功能方法,代碼如下:
  • jQuery 參考手冊 - 選擇器
    選擇器實例選取*$("*")所有元素#id$("#lastname")id="lastname" 的元素.class$(".intro")所有 的元素element$("p")所有 <p> 元素.class.class$(".intro.demo")所有 且 的元素:first$("p:first")第一個 <p> 元素:last$("p:last
  • jQuery中使用parent()、parents()和parentsUntil()查找父元素
    然後又使用了parent()方法,運行結果如下:圖2從圖上看,#div11和#div3都是p元素的直接父元素。可見,jQuery的parent()方法在封裝上功能還是挺強大的。方法,該方法要比parent()方法查找到的Html元素更多。
  • 案例詳解:filter 過濾、map 映射、reduce累積
    filter()函數用於過濾序列。
  • 使用jQuery中的siblings()方法查找當前html元素的全部同胞元素
    在jQuery中,除了可以在Html DOM中向上(parent()/parents()方法)和向下(children()/find()方法)查找Html元素之外,還可以使用siblings()方法得到當前元素的全部同級元素,也稱為同胞元素。
  • jQuery中使用text()、html()、val()方法對Html元素賦值和取值
    中,使用選擇器可以非常容易的得到任何一個Html元素,在Html頁面上,分表單元素和非表單元素:表單元素:以input為標記的元素,生成的標記有單行文本框、多行文本框、單選按鈕、多選按鈕、下拉菜單等。非表單元素:div、p、span、h1、h2、h3等。而對於jQuery封裝的text()方法,其主要功能就是給Html頁面上的非表單元素賦值和取值操作。
  • jQuery學習筆記
    通過方法選擇jQuery對象)操作標籤操作類css操作位置操作尺寸文本操作值操作屬性操作文檔處理事件綁定時間(兩種方式)實例PS:概念安裝3.x 為官方主要維護和更新版本(不兼容IE678)// 官方中文教程https://jquery.cuishifeng.cn
  • reduce()函數和filter()函數閃亮登場
    在推文《優雅的map()》中,我們向大家介紹了map()函數的使用方法。今天給大家帶來了另外兩個相當實用的Python函數——reduce()函數和filter()函數。大家想對這兩個函數有進一步了解的話,就請繼續看下去吧!一.reduce()函數  reduce()函數是用函數對參數序列中的元素進行累積。