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

2020-12-13 一都編程

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的slideDown()、slideUp()和slideToggle()實現元素的滑動
    對於Html頁面上的所有元素,都是可以產生滑動效果的,也就是所有Html元素都可以使用jQuery的滑動功能。jQuery封裝的與滑動功能相關的方法有3個,分別為:slideUp()方法:主要功能是向上滑動元素。
  • 如何用Map、Filter和Reduce替換Python For循環?
    此時,Map, filter和 reduce三種技術可以幫到你。它們可以通過提供描述迭代原因的函數替代選擇,來矯正For循環的狂熱。回顧之前寫的代碼,我意識到當循環字符串或數組時,95%的情況下,我都在做如下的事情之一:將系列語句映射(Map)到每個值,過濾(Filter)掉滿足特定情況的值,或者將數據集減少(Reduce)到單個聚合值。基於這種觀點,這三種方法是識別和實現,因為循環迭代的原因通常對應以下三種功能類型之一:· Map:對每個項應用相同的步驟集,儲存結果。
  • 您知道from first to last是什麼意思嗎?
    今天,我們一起看一下與last相關的一些習語。看一下這些習語您都知道嗎?如果您已經掌握了,那就再複習一下;如果沒有掌握,那就趁著這次機會掌握了。下面,我們就一起看一下last的用法。1、at long last 最後、終於At long last his prayers had been answered.他的禱告終於應驗了。
  • 每天諺語:First impressions last
    新東方網>英語>英語學習>口語>每日一句英語>正文每天諺語:First impressions last 2013-02-20 16:13 來源:恆星英語 作者:
  • first name、given name or last name 英語的名字文化
    中國的人名是由姓+名組成,而英語國家的人名是由first name、given name和last name
  • [開學第一課]英語老師們有沒有認真反思過last name & first name?
    name and last name(表達太籠統,learn "what" of the first name and last name?;如果學生說不出來,做不出來,就會有相應的挫敗感,所以老師下次課在output的設計上要rethink一下;在前面Lilian提出了兩個思考題:怎樣和學生說「last name & first name」最高效?
  • jquery響應式布局
    相關文章: 1. jquery-quickfit 一種快速而骯髒的方法,可將文本放入其周圍的容器中。 您可以使用jQuery選擇器輕鬆隱藏和顯示項目元素,並通過排序對項目元素重新排序。 select元素。
  • 從頭使用.map() .filter() 和.reduce(),你會有意想不到的收穫!
    在「碼農圈」,學習如何使用.map()、.filter()和.reduce()函數,我們讀到、看到和聽到的一切都很複雜,無法理解這些概念,因為它們是獨立的學習單元。聽說這些是意味著上升至啟蒙狀態的入門知識。
  • first name、given name or last name 傻傻分不清楚| 商務英語
    中國的人名是由姓+名組成,而英語國家的人名是由first name、given name和last name組成。
  • 中文是母語的童鞋們,first name、given name 、last name你們分清了嗎?
    中國的人名是由姓+名組成,而英語國家的人名是由first name、given name和last name組成。 但是中國和英語國家在寫法上還是有很大區別的,很多人在出國填寫表單的時候,都會弄錯。金程AQF小編今天給大家詳細解說first name、given name和last name的區別。
  • 從零做網站開發:基於Flask和JQuery實現表格管理平臺
    -- jQuery first, then Popper.js, then Bootstrap JS --><script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo
  • python高階函數:map、filter、reduce的替代品
    雖然map函數、filter函數、reduce函數還能使用,但是很多場景下其都有替代品可以使用。map、filter、reduce的替代品函數式程式語言一般都會提供map、filter、reduce三個高階函數。python3中前兩個是內置函數,但是因為其引入了列表推導和生成器表達式,它們也就變得沒有那麼重要了,因為其具有了可替代性。
  • FRM報名丨first name、given name or last name 傻傻分不清?
    首先,中國的人名是由姓+名組成,而英語國家的人名是由first name、given name和last name組成。中國和英語國家在寫法上還是有很大區別的,很多人在FRM報名填寫的時候,都會弄錯。插播一個小福利,FRM冰點酷爽大禮包最後10個嘗鮮價的名額。
  • 紫外雷射剝離,適用於chip last或RDL-first扇出型晶圓級封裝
    紫外雷射剝離,適用於chip last或RDL-first扇出型晶圓級封裝 工程師曾玲 發表於 2018-07-10 09:27:00 扇出型封裝(fan-out
  • WooCommerce修改帳單和收貨地址欄位
    在創建教程之前,我嘗試過使用Google進行搜索,並在WooCommerce中找到了關於計費和運送欄位的太多奇怪信息。現在讓我們對此有所了解!WooCommerce中有兩種類型的欄位-計費和運送欄位。在這兩個類別中都顯示了某些欄位,例如名字欄位或國家/地區欄位。
  • 2017年12月六級語法:first 與 at first的用法區別
    2017年12月大學英語六級語法用法辨析匯總   first 與 at first的用法區別   (1) first 意為「先」「首先」,主要用來說明順序,暗示接下去還有其他的動作或事件要發生,因此其後往往接有或暗示有 then, next, last 之類的詞。
  • 使用:first-child,:nth-child()的一些注意事項
    以p標籤為例(1) 使用p:first-child生效要滿足兩個條件:1. `p`被同一個父元素包裹2.該父元素的第一個元素就是`p`元素(2)同理,使用p:last-child生效要滿足兩個條件:1. `p`被同一個父元素包裹 2. 該父元素的最後一個元素就是`p`元素(3)p:nth-child(), p:nth-last-child()使用有以下幾點注意:1. 括號內的序號都是從1開始的,0是無效的2.
  • 英語語法:first與at first用法區別詳解
    (first為形容詞,在句中用作定語)   I asked them to ring first in case we were out. 我請他們先打電話來,以防我們不在家。(first為副詞,在句中用作狀語)   She’s always the first to arrive and the last to leave. 她總是第一個來,最後一個離開。
  • 語法寶典:first與at first用法區別詳解
    (first為形容詞,在句中用作定語)   I asked them to ring first in case we were out. 我請他們先打電話來,以防我們不在家。(first為副詞,在句中用作狀語)   She’s always the first to arrive and the last to leave. 她總是第一個來,最後一個離開。