首頁 >web前端 >js教程 >jquery中remove()與detach()的區別

jquery中remove()與detach()的區別

巴扎黑
巴扎黑原創
2017-06-25 09:53:531466瀏覽

  jquery是一個很大強的東西,在工作中常能用到,可是有些方法還是因為不常用到,或是沒有註意到而被我們而忽略。

  remove()和detach()可能就是其中的一個,可能remove()我們用得比較多,而detach()就可能會很少了。可能我用的不夠精吧,我一次也沒用過。可是這次因為一個專案中一個問題,而用到它,感覺很有意思就記錄下來,與大家分享。

  remove():官方的解釋是

  從DOM中刪除所有符合的元素。這個方法不會把符合的元素從jQuery物件中刪除,因而可以在將來再使用這些符合的元素。但除了這個元素本身得以保留之外,其他的例如綁定的事件,附加的資料等都會被移除。

  我的理解就是將元素移除了。但是怎麼再找回來,說真的,我一直也沒找到,哪個朋友用過。可以告訴我,十分感謝,

  用法:

  從DOM中把所有段落刪除

  HTML 程式碼:
  <p>Hello</p> how are <p>you?</p>
  jQuery 程式碼:
  $("p").remove();
  結果:
  how are

  這個方法,不多說了,我們主要說一下detach()這個方法,

  官方描述:

  從DOM中刪除所有符合的元素。這個方法不會把符合的元素從jQuery物件中刪除,因而可以在將來再使用這些符合的元素。與remove()不同的是,所有綁定的事件、附加的資料等都會保留下來。

  描述:

  從DOM中刪除所有段落

  HTML 程式碼:
 <p>Hello</p> how are <p>you?</p>
  jQuery 程式碼:
##
  $("p").detach();
  描述:

  從DOM中刪除帶有hello類別的段落

  HTML 程式碼:

  how are
   5#」程式碼:
  <p class="hello">Hello</p> how are <p>you?</p>
   #  結果:
  $("p").detach(".hello");
我們這麼一看,好像沒有什麼差別啊。這二個功能,哈哈。 。 。 。我現在說一下我遇到的情況。然後是如何解決的,大家就明白了。

我這裡有一個表單,其中有一項是 註冊碼,就是每個資訊都會有一個獨立的註冊碼,沒有註冊碼是不能註冊成功的。我用的是jquery的

控制項

formValidator來驗證的,這個控制項大家都用過,他是在頁面載入的時候,就開始驗證了,而且對於css中的display和jquery裡的hide()方法,它是無視的。本來呢。這是沒有問題,但用戶卻提出了一個新的需求,就是加一個選項,用來判斷是否顯示這個註冊碼,如果不顯示,那麼就不要對註冊碼文本框進行驗證,無恥的需求。 在試用了css的display和jquery的hide()之後,我把目光放到了remove()。它到是不驗證了,可是我選擇要驗證的時候,被移除的內容加不回來了,所以我開始找能回來了的。這時候,發現了

detach()。它的有什麼好處呢。我下面放一程式碼出來

<pre class="brush:php;toolbar:false">  how are &lt;p&gt;you?&lt;/p&gt;</pre>

看到這段程式碼之後,我想不用我過多的解釋了。大家就明白了吧,很有意思的方法。



#

以上是jquery中remove()與detach()的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn