老生常談jquery中detach()和remove()的區(qū)別
JQuery是一個(gè)很大強(qiáng)的工具庫(kù),在工作中開(kāi)發(fā)中,可是有些方法還是因?yàn)椴怀S玫?,或是沒(méi)有注意到而被我們而忽略。
remove()和detach()可能就是其中的一個(gè),可能remove()我們用得比較多,而detach()就可能會(huì)很少了
通過(guò)一張對(duì)比表來(lái)解釋2個(gè)方法之間的不同
方法名 |
參數(shù) |
事件及數(shù)據(jù)是否也被移除 |
元素自身是否被移除 |
remove |
支持選擇器表達(dá) |
是 |
是(無(wú)參數(shù)時(shí)),有參數(shù)時(shí)要根據(jù)參數(shù)所涉及的范圍 |
detach |
參數(shù)同remove |
否 |
情況同remove |
remove:移除節(jié)點(diǎn)
- 無(wú)參數(shù),移除自身整個(gè)節(jié)點(diǎn)以及該節(jié)點(diǎn)的內(nèi)部的所有節(jié)點(diǎn),包括節(jié)點(diǎn)上事件與數(shù)據(jù)
- 有參數(shù),移除篩選出的節(jié)點(diǎn)以及該節(jié)點(diǎn)的內(nèi)部的所有節(jié)點(diǎn),包括節(jié)點(diǎn)上事件與數(shù)據(jù)
detach:移除節(jié)點(diǎn)
- 移除的處理與remove一致
- 與remove()不同的是,所有綁定的事件、附加的數(shù)據(jù)等都會(huì)保留下來(lái)
- 例如:$("p").detach()這一句會(huì)移除對(duì)象,僅僅是顯示效果沒(méi)有了。但是內(nèi)存中還是存在的。當(dāng)你append之后,又重新回到了文檔流中。就又顯示出來(lái)了。
eq:
<html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <style type="text/css"> p { border: 1px solid red; } </style> <script src="http://libs.baidu.com/jquery/1.9.1/jquery.js"></script> </head> <body> <h3>給頁(yè)面2個(gè)p元素節(jié)點(diǎn)綁定點(diǎn)擊事件,點(diǎn)擊后彈出自己本身的節(jié)點(diǎn)內(nèi)容</h3> <p>元素p1,同時(shí)綁定點(diǎn)擊事件</p> <p>元素p2,同時(shí)綁定點(diǎn)擊事件</p> <h3>通過(guò)點(diǎn)擊2個(gè)按鈕后觀(guān)察方法處理的區(qū)別</h3> <button>點(diǎn)擊通過(guò)remove處理元素p1</button> <button>點(diǎn)擊通過(guò)detach處理元素p2</button> </body> <script type="text/javascript"> //給頁(yè)面上2個(gè)p元素都綁定時(shí)間 $('p').click(function (e) { alert(e.target.innerHTML) }) $("button:first").click(function () { var p = $("p:first").remove(); p.css('color', 'red').html('p1通過(guò)remove處理后,點(diǎn)擊該元素,事件丟失') $("body").append(p); }); $("button:last").click(function () { var p = $("p:first").detach(); p.css('color', 'blue').text('p2通過(guò)detach處理后,點(diǎn)擊該元素事件存在') $("body").append(p); }); </script> </script> </html >
以上這篇老生常談jquery中detach()和remove()的區(qū)別就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- PHP isset()與empty()的使用區(qū)別詳解
- jQuery刪除節(jié)點(diǎn)的三個(gè)方法即remove()detach()和empty()
- php empty,isset,is_null判斷比較(差異與異同)
- jQuery使用empty()方法刪除元素及其所有子元素的方法
- javascript Array.remove() 數(shù)組刪除
- jquery之empty()與remove()區(qū)別說(shuō)明
- 淺談java Iterator.remove()方法的用法(詳解)
- jQuery remove()過(guò)濾被刪除的元素(推薦)
- 清空元素html("") innerHTML="" 與 empty()的區(qū)別和應(yīng)用(推薦)
相關(guān)文章
jQuery編寫(xiě)textarea輸入字?jǐn)?shù)限制代碼
這篇文章主要為大家詳細(xì)介紹了jQuery編寫(xiě)textarea輸入字?jǐn)?shù)限制代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03JQuery的Ajax中Post方法傳遞中文出現(xiàn)亂碼的解決方法
這篇文章主要介紹了JQuery的Ajax中Post方法傳遞中文出現(xiàn)亂碼的解決方法,較為深入的分析了Ajax的post方法出現(xiàn)亂碼的原因,以及具體的解決方法,需要的朋友可以參考下2014-10-10從零開(kāi)始學(xué)習(xí)jQuery (五) jquery事件與事件對(duì)象
事件是腳本編程的靈魂. 所以本章內(nèi)容也是jQuery學(xué)習(xí)的重點(diǎn). 本文將對(duì)jQuery中的事件處理以及事件對(duì)象進(jìn)行詳細(xì)的講解.2011-02-02jQuery獲取Radio,CheckBox選擇的Value值(示例代碼)
這篇文章主要是對(duì)jQuery獲取Radio,CheckBox選擇的Value值進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12jQuery ajax dataType值為text json探索分享
ajax dataType值為text json的使用是怎么樣的,在本文將為大家想你想介紹下,感興趣的朋友不要錯(cuò)過(guò)2013-09-09基于jquery實(shí)現(xiàn)鼠標(biāo)左右拖動(dòng)滑塊滑動(dòng)附源碼下載
這篇文章主要介紹了基于jquery實(shí)現(xiàn)鼠標(biāo)左右拖動(dòng)滑塊滑動(dòng)附源碼下載 的相關(guān)資料,需要的朋友可以參考下2015-12-12jQuery 實(shí)現(xiàn)批量提交表格多行數(shù)據(jù)的方法
今天小編就為大家分享一篇jQuery 實(shí)現(xiàn)批量提交表格多行數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08