国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

當我調用了$().append()后,jQuery內部發生了什么?

skinner / 933人閱讀

摘要:它的作用是是用來處理等操作方法的參數的,統一將其處理為類型節點,并交由函數處理,即上圖的。作用將返回的插入到的內部末尾。方法創建了一虛擬的節點對象,節點對象包含所有屬性和方法。

前言:這篇我們著講

1、有這樣一個頁面:


  

  

注意:不要 append(test1),規范寫法是 append(test1)

2、像之前的文章一樣,我們自定義 append() 方法

  let ajQuery={}
  jQuery.each({
      //例:"

Test

" //源碼6011行-6019行 // 在被選元素的結尾插入指定內容 /*append的內部的原理,就是通過創建一個文檔碎片,把新增的節點放到文檔碎片中,通過文檔碎片克隆到到頁面上去,目的是效率更高*/ append: function(nodelist, arguments) { //node是由domManip處理得到的文檔碎片documentFragment,里面包含要插入的DOM節點 let callbackOne=function( node ) { console.log(node,"node149") //this指的就是$("xxx") //1:元素節點,11:DocumentFragment,9:document if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { //table插入tr的額外判斷 //target默認情況是selector,即document.querySelectorAll(".inner") let target = manipulationTarget( this, node ) console.log(target,node.childNodes,"node147") //append的本質即使用原生appendChild方法在被選元素內部的結尾插入指定內容 target.appendChild( node ); } } console.log(nodelist,arguments,"this120") return domManip( nodelist, arguments, callbackOne ); }, }, function(key, value) { ajQuery[key] = function(nodelist, arguments) { console.log(nodelist,"nodelist128") return value(nodelist, arguments); } } )

3、可以看到,append() 內部調用了 domManip 的方法,接下來重點介紹下該方法

(1)什么是 domManip ?

domManip() 是 jQuery DOM 的核心函數。dom 即 Dom 元素,Manip 是Manipulate 的縮寫,連在一起就是 Dom 操作的意思。

(2)它的作用是?

domManip() 是用來處理 $().append(xxx)$().after(xxx) 等操作 DOM 方法的參數的,統一將其處理為 DOM 類型節點,并交由 callback 函數處理,即上圖的 callbackOne

注意: 本文暫不考慮參數包含