第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

章節(jié)
問答
課簽
筆記
評論
占位
占位

內(nèi)部插入

jQuery針對DOM操作的插入的方法有大概10種:

append、prepend、before、after、replaceWith
appendTo、prependTo、insertBefore、insertAfter、replaceAll

分2組,上下對照,實現(xiàn)同樣的功能。主要的不同是語法——特別是內(nèi)容和目標的位置。

依賴的domManip,buildFragment模塊在之前就分析過了。

在匹配元素集合中的每個元素后面插入?yún)?shù)所指定的內(nèi)容,作為其兄弟節(jié)點。

對于 .after(), 選擇表達式在函數(shù)的前面,參數(shù)是將要插入的內(nèi)容。

對于 .insertAfter(),剛好相反,內(nèi)容在方法前面,它將被放在參數(shù)里元素的后。

After

after: function() {
    return this.domManip( arguments, function( elem ) {
        if ( this.parentNode ) {
            this.parentNode.insertBefore( elem, this.nextSibling );
        }
    });
},

之前提過了所有的方法靠this.domManip合并參數(shù)處理,內(nèi)部通過buildFragment模塊構建文檔碎片,然后把每一個方法的具體執(zhí)行通過回調(diào)的方式提供出來處理。

DOM操作并未提供一個直接可以在當前節(jié)點后插入一個兄弟節(jié)點的方法,但是提供了一個類似的方法。

insertBefore() 方法:可在已有的子節(jié)點前插入一個新的子節(jié)點。

語法 :insertBefore(newchild,refchild)

看看jQuery如何處理的,例如:

inner.after('<p>Test</p>');

內(nèi)部就會把  '<p>Test</p>' 通過buildFragment構建出文檔elem,然后通過 this.parentNode.insertBefore( elem, this.nextSibling );

這里的this 就是對應著inner ,elem就是‘<p>Test</p>’,看到這里就很好理解after的實現(xiàn)了。

用原生方法簡單模擬:右側代碼編輯器所示。

insertAfter

$('<p>Test</p>').insertAfter('.inner');

通過$('<p>Test</p>')構建一個文檔,對象通過insertAfter方法插入到所有class等于inner的節(jié)點后。表達的意思與after是一樣的,主要的不同是語法——特別是內(nèi)容和目標的位置。

看具體的實現(xiàn)方法中insertAfter('.inner');inner其實就被當作selector傳入進來了,selector可能只是字符串選擇器內(nèi)部就需要轉化,insert = jQuery( selector ),

$('<p>Test</p>')就是構建出來的文檔碎片節(jié)點,那么如果賦給insert有多個的時候就需要完全克隆一份副本了,所以就直接賦給:

elems = i === last ? this : this.clone( true );
jQuery( insert[ i ] )[ original ]( elems );

依舊是執(zhí)行after:

jQuery( insert[ i ] )[ original ]( elems );

最終還需要返回這個構建的新節(jié)點。

收集構建的節(jié)點:

core_push.apply( ret, elems.get() );

構建一個新jQuery對象,以便實現(xiàn)鏈式:

this.pushStack( ret );

可見 after 與 insertAfter 本質(zhì)其實都是一樣的,只是通過不同的方式調(diào)用。

任務

?不會了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數(shù)過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優(yōu)惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態(tài)

舉報

0/150
提交
取消
全部 精華 我要發(fā)布
全部 我要發(fā)布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發(fā)表

為什么扣積分?

本次提問將花費2個積分

繼續(xù)發(fā)表請點擊 "確定"

為什么扣積分?