jq學習筆記(二)

来源:http://www.cnblogs.com/starry-sky/archive/2017/05/30/6921378.html
-Advertisement-
Play Games

jq筆記-dom篇-慕課網學習筆記 1.jQuery節點創建與屬性的處理 創建元素節點: 1.$("<div></div>") 創建為本節點: 1.$("<div>我是文本節點</div>") 創建為屬性節點: 1.$("<div id='test' class='aaron'>我是文本節點</di ...


jq筆記-dom篇-慕課網學習筆記

 

1.jQuery節點創建與屬性的處理

創建元素節點:
  1.$("<div></div>")
創建為本節點:
  1.$("<div>我是文本節點</div>")
創建為屬性節點:
  1.$("<div id='test' class='aaron'>我是文本節點</div>")
  2.$("<div class='right'><div class='aaron'>動態創建DIV元素節點</div></div>")


2.DOM內部插入append()與appendTo()

  ①append() 向每個匹配的元素內部追加內容
  ②appendTo() 把所有匹配的元素追加到另一個

  簡單的總結就是:

  .append()和.appendTo()兩種方法功能相同,主要的不同是語法——內容和目標的位置不同

    —— append()前面是被插入的對象,後面是要在對象內插入的元素內容
    —— appendTo()前面是要插入的元素內容,而後面是被插入的對象

 

3.DOM外部插入after()與before()

  ①after() 在匹配元素幾何中的每個元素後面插入參數所指定的內容,作為其兄弟節點
  ②before() 據參數設定,在匹配元素的面前插入內容

  註意:
    ①after向元素的後邊添加html代碼,如果元素後面有元素了,那將後面的元素後移,然後將html代碼插入
    ②before向元素的前邊添加html代碼,如果元素前面有元素了,那將前面的元素前移,然後將html代碼插


4.DOM內部插入prepend()與prependTo()

  ①prepend() 向每個匹配的元素內部前置內容
  ②prependTop() 把所有匹配的元素前置到另一個指定的元素幾何中

  總結dom內部插入的四個方法的區別
    ①append()向每個匹配的元素內部追加內容
    ②prepend()向每個匹配的元素內部前置內容
    ③appendTo()把所有匹配的元素追加到另一個指定元素的集合中
    ④prependTo()把所有匹配的元素前置到另一個指定的元素集合中

 

5.DOM外部插入insertAfter()與insertBefore()

  ①insertBefore() 在目標元素前面插入幾何中的每一個元素
  ②insertAfter() 在目標元素後面插入幾何中的每個匹配的元素


6.DOM節點刪除之empty()的基本用法

  empty 顧名思義,清空方法,但是與刪除又有點不一樣,因為它只移除了 指定元素中的所有子節點。


7.DOM節點刪除之remove()的有參用法和無參用法

  remove與empty一樣,都是移除元素的方法,但是remove會將元素自身移除,同時也會移除元素內部的一切,包括綁定的事件及與該元素相關的jQuery數據。


8.DOM節點刪除之empty和remove區別

  ①empty方法
    嚴格地講,empty()方法並不是刪除節點,而是清空節點,它能清空元素中的所有後代節點
    empty不能刪除自己本身這個節點

  ②remove方法
    該節點與該節點所包含的所有後代節點將同時被刪除
    提供傳遞一個篩選的表達式,刪除指定合集中的元素

 

9.DOM節點刪除之保留數據的刪除操作detach()

10.DOM節點刪除之detach()和remove()區別

  remove:移除節點
    ①無參數,移除自身整個節點以及該節點的內部的所有節點,包括節點上事件與數據
    ②有參數,移除篩選出的節點以及該節點的內部的所有節點,包括節點上事件與數據

  detach:移除節點
    ①移除的處理與remove一致
    ②與remove()不同的是,所有綁定的事件、附加的數據等都會保留下來
    ③例如:$("p").detach()這一句會移除對象,僅僅是顯示效果沒有了。但是記憶體中還是存在的。當你append之後,又重新回到了文檔流中。就又顯示出來了。


11.DOM拷貝clone()

.clone()方法深度 複製所有匹配的元素集合,包括所有匹配元素、匹配元素的下級元素、文位元組點。

clone方法比較簡單就是克隆節點,但是需要註意,如果節點有事件或者數據之類的其他處理,我們需要通過clone(ture)傳遞一個布爾值ture用來指定,這樣不僅僅只是克隆單純的節點結構,還要把附帶的事件與數據給一併克隆了說

使用上就是這樣簡單,使用克隆的我們需要額外知道的細節:

  ①clone()方法時,在將它插入到文檔之前,我們可以修改克隆後的元素或者元素內容,如右邊代碼我 $(this).clone().css('color','red') 增加了一個顏色
  ②通過傳遞true,將所有綁定在原始元素上的事件處理函數複製到克隆元素上
  ③clone()方法是jQuery擴展的,只能處理通過jQuery綁定的事件與數據
  ④元素數據(data)內對象和數組不會被覆制,將繼續被克隆元素和原始元素共用。深複製的所有數據,需要手動複製每一個


12.DOM替換replaceWith()和replaceAll()

  ①.replaceWith( newContent ):用提供的內容替換集合中所有匹配的元素並且返回被刪除元素的集合
  ②.replaceAll( target ) :用集合的匹配元素替換每個目標元素

  總結:
    ①replaceAll()和.replaceWith()功能類似,主要是目標和源的位置區別
    ②.replaceWith()與.replaceAll() 方法會刪除與節點相關聯的所有數據和事件處理程式
    ③.replaceWith()方法,和大部分其他jQuery方法一樣,返回jQuery對象,所以可以和其他方法鏈接使用
    ④.replaceWith()方法返回的jQuery對象引用的是替換前的節點,而不是通過replaceWith/replaceAll方法替換後的節點

    例子:

      ①$("p:eq(1)").replaceWith('<a style="color:red">替換第二段的內容</a>')
      ②$('<a style="color:red">替換第二段的內容</a>').replaceAll('p:eq(1)')

 

13.DOM包裹wrap()方法

  如果要將元素用其他元素包裹起來,也就是給它增加一個父元素,針對這樣的處理,JQuery提供了一個wrap方法

  ①.wrap( wrappingElement ):在集合中匹配的每個元素周圍包裹一個HTML結構

  例子:
    <p>p元素</p>

    給p元素增加一個div包裹

    $('p').wrap('<div></div>')

    最後的結構,p元素增加了一個父div的結構

    <div>
      <p>p元素</p>
    </div>

  ②.wrap( function ) :一個回調函數,返回用於包裹匹配元素的 HTML 內容或 jQuery 對象

  例子:
    $('p').wrap(function() {
      return '<div></div>'; //與第一種類似,只是寫法不一樣
    })

    使用後的效果與直接傳遞參數是一樣,只不過可以把代碼寫在函數體內部,寫法不同而已

  註意:
    .wrap()函數可以接受任何字元串或對象,可以傳遞給$()工廠函數來指定一個DOM結構。這種結構可以嵌套了好幾層深,但應該只包含一個核心的元素。每個匹配的元素都會被這種結構包裹。該方法返回原始的元素集,以便之後使用鏈式方法。

 

 

14.DOM包裹unwrap()方法

  作用:刪除父元素

  jQuery提供了一個unwarp()方法 ,作用與wrap方法是相反的。將匹配元素集合的父級元素刪除,保留自身(和兄弟元素,如果存在)在原來的位置

  例子:
    <div>
      <p>p元素</p>
    </div>

    ——>

    $('p').unwarp();

    ——>

    <p>p元素</p>


15.DOM包裹wrapAll()方法

  ①.wrapAll( wrappingElement ):給集合中匹配的元素增加一個外麵包裹HTML結構

  例子一:
    <p>p元素</p>
    <p>p元素</p>

    ——> 給所有p元素增加一個div包裹

    $('p').wrapAll('<div></div>')

    ——> 結果 2個P元素都增加了一個父div的結構

    <div>
      <p>p元素</p>
      <p>p元素</p>
    </div>

  ②.wrapAll( function ) :一個回調函數,返回用於包裹匹配元素的 HTML 內容或 jQuery 對象

  通過回調的方式可以單獨處理每一個元素

  例子二:
    $('p').wrapAll(function() {
      return '<div><div/>';
    })

    ——> 以上的寫法的結果如下,等同於warp的處理了

    <div>
      <p>p元素</p>
    </div>
    <div>
      <p>p元素</p>
    </div>

  註意:
    .wrapAll()函數可以接受任何字元串或對象,可以傳遞給$()工廠函數來指定一個DOM結構。這種結構可以嵌套多層,但是最內層只能有一個元素。所有匹配元素將會被當作是一個整體,在這個整體的外部用指定的 HTML 結構進行包裹。

 


16.DOM包裹wrapInner()方法

  ①.wrapInner( wrappingElement ):給集合中匹配的元素的內部,增加包裹的HTML結構

  例子一:
    <div>p元素</div>
    <div>p元素</div>

    ——> 給所有元素增加一個p包裹

    $('div').wrapInner('<p></p>')

    ——> 結果

    <div>
      <p>p元素</p>
    </div>
    <div>
      <p>p元素</p>
    </div>

  ②.wrapInner( function ) :允許我們用一個callback函數做參數,每次遇到匹配元素時,該函數被執行,返回一個DOM元素,jQuery對象,或者HTML片段,用來包住匹配元素的內容

  例子二:

    $('div').wrapInner(function() {
      return '<p></p>';
    })

    ——>

    <div>
      <p>p元素</p>
    </div>
    <div>
      <p>p元素</p>
    </div>

  註意:
    當通過一個選擇器字元串傳遞給.wrapInner() 函數,其參數應該是格式正確的 HTML,並且 HTML 標簽應該是被正確關閉的。



17.jQuery遍歷之children()方法

.children(selector) 方法是返回匹配元素集合中每個元素的所有子元素(僅兒子輩,這裡可以理解為就是父親-兒子的關係)

 

18.jQuery遍歷之find()方法

例子:
<div class="div">
  <ul class="son">
    <li class="grandson">1</li>
  </ul>
</div>

代碼如果是$("div").find("li"),此時,li與div是祖輩關係,通過find方法就可以快速的查找到了。

.find()方法要註意的知識點:
  ①find是遍歷當前元素集合中每個元素的後代。只要符合,不管是兒子輩,孫子輩都可以。
  ②與其他的樹遍歷方法不同,選擇器表達式對於 .find() 是必需的參數。如果我們需要實現對所有後代元素的取回,可以傳遞通配選擇器 '*'。
  ③find只在後代中遍歷,不包括自己。
  ④選擇器 context 是由 .find() 方法實現的;因此,$('.item-ii').find('li') 等價於 $('li', '.item-ii')(找到類名為item-ii的標簽下的li標簽)。

註意重點:
  .find()和.children()方法是相似的
    1.children只查找第一級的子節點
    2.find查找範圍包括子節點的所有後代節點


19.jQuery遍歷之parent()方法

parent()方法作用:查找父元素

因為是父元素,這個方法只會向上查找一級


20.jQuery遍歷之parents()方法

作用:parents()方法可以查找祖輩元素

例子:
<div class="div">
  <ul class="son">
    <li class="grandson">1</li>
  </ul>
</div>

在li節點上找到祖 輩元素div, 這裡可以用$("li").parents()方法

註意:
  1 .parents()和.parent()方法是相似的,但後者只是進行了一個單級的DOM樹查找
  2 $( "html" ).parent()方法返回一個包含document的集合,而$( "html" ).parents()返回一個空集合。


21.jQuery遍歷之closest()方法

作用:也是祖輩查找器,但更偏向與祖輩過濾查找器

closest()方法接受一個匹配元素的選擇器字元串

從元素本身開始,在DOM 樹上逐級向上級元素匹配,並返回最先匹配的祖先元素

註意事項:在使用的時候需要特別註意下

粗看.parents()和.closest()是有點相似的,都是往上遍歷祖輩元素,但是兩者還是有區別的,否則就沒有存在的意義了

  ①起始位置不同:.closest開始於當前元素 .parents開始於父元素
  ②遍歷的目標不同:.closest要找到指定的目標,.parents遍歷到文檔根元素,closest向上查找,直到找到一個匹配的就停止查找,parents一直查找到根元素,並將匹配的元素加入集合
  ③結果不同:.closest返回的是包含零個或一個元素的jquery對象,parents返回的是包含零個或一個或多個元素的jquery對象


22.jQuery遍歷之next()方法

作用:查找下一個兄弟元素

例:
  ①$("li.item-1").next().css("border","1px solid red")
  ② $('.item-2').next(':first').css('border', '1px solid blue')

 

23.jQuery遍歷之prev()方法

作用:查找緊鄰的前一個兄弟元素

 

24.jQuery遍歷之siblings()

siblings()作用:快速查找指定元素幾何中每一個元素的同輩元素



25.add方法

  jQuery是一個合集對象,通過$()方法找到指定的元素合集後可以進行一系列的操作。$()之後就意味著這個合集對象已經是確定的,如果後期需要再往這個合集中添加一新的元素要如何處理?jQuery為此提供add方法,用來創建一個新的jQuery對象 ,元素添加到匹配的元素集合中


26.jquery歷遍之 each()

each()是什麼?
  ①each是一個for迴圈的包裝迭代器
  ②each通過回調的方式處理,並且會有2個固定的實參,索引與元素
  ③each回調方法中的this指向當前迭代的dom元素

個人感覺,each更適合做“斑馬線”之類的效果





 






您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先需要弄清楚npm與cnpm的區別(要看解決問題方案的情直接跳到最後): npm:npm(node package manager)是nodejs的包管理器,用於node插件管理(包括安裝、卸載、管理依賴等) cnpm:因為npm安裝插件是從國外伺服器下載,受網路影響大,可能出現異常,如果npm的 ...
  • 記憶體分配方式 簡介 在C++中,記憶體分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區。 棧:在執行函數時,函數內局部變數的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧記憶體分配運算內置於處理器的指令集中,效率很高,但是分配的記憶體容量有限。 堆:就是那些由 n ...
  • 今天這一題有點燒腦: 有一個序列u,滿足: 1. 第一個元素是1 2. 此後任意一個元素x,2x+1和3x+1也必定在u中 現給定整數n,求序列u中的第n+1個元素是什麼? 規定:要註意演算法的效率 分析: 乍一想有點亂。先找幾個數計算一下: 1 [1], 3, 4 1, [3], 4, 7, 10 ...
  • 英文分詞的第三方庫NLTK不錯,中文分詞工具也有很多(盤古分詞、Yaha分詞、Jieba分詞等)。但是從載入自定義字典、多線程、自動匹配新詞等方面來看。 大jieba 確實是中文分詞中的 戰鬥機 。 請隨意觀看表演 "安裝" "分詞" "自定義詞典" "延遲載入" "關鍵詞提取" "詞性標註" "詞 ...
  • ID3決策樹實現源碼(Python版),機器學習經典演算法起步階段,歡迎討論交流。 ...
  • 視頻在youtube網站國內訪問不了,可以使用翻牆軟體查看。 視頻地址:www.youtube.com/embed/682p52tFcmY@autoplay=1 下麵是視頻文字介紹: Magento 2系統整體結構是建立在模塊的基礎上。通常,創建定製的第一步是構建模塊。 要創建模塊,需要完成以下步驟 ...
  • 0 目錄 認證授權系列:http://www.cnblogs.com/linianhui/category/929878.html 1 什麼是OIDC? 看一下官方的介紹(http://openid.net/connect/): OpenID Connect 1.0 is a simple iden ...
  • 1.angular 調用客戶端方法放在 try catch中 try { js_invoke.showShareDialog(angular.toJson(obj)); // 在這裡放客戶端的方法即可 } catch(e) { console.log('Recommend share',obj); ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...