2017-08-12 60 views
0

它是確定地認爲使用
顯示:無VS jQuery的刪除()

(.class).remove()

是該網站的加載時間更好,而不是使用

.class {display:none}

+1

'.remove()'將更改父節點的節點列表,因爲它涉及刪除DOM節點。 'display:none'不涉及DOM節點的移除。儘管在大多數情況下,無論如何都會導致重新繪製。請記住,'display:none'也不會從DOM中刪除元素。 – Terry

+0

如果您想在文檔中稍後處理元素,請使用display:none .remove()是最好的。 –

回答

1

我認爲你是想要比較$('。class')。hide()和.class {display:none}。 $('。class')。remove()從頁面中刪除整個元素,它只是不隱藏它。在一天結束時,CSS會更快。 JQuery總是有被分解爲javascript的額外步驟,然後解析JavaScript以選擇所有DOM元素並通過應用CSS循環。

因此,在一天結束時,您仍然會將CSS應用於元素,但需要大約2-3個額外的步驟。您可以通過使用.class {display:none;}即時應用CSS來跳過所有這些步驟。

在一天結束時,雖然這是一種微不足道的擔憂,但性能差異將小於幾分之一秒,除非您正在使用1000個元素和1000個元素。

如果你真的想比較$('。class')。remove(),那麼同樣的概念仍然適用。

+0

謝謝你們,非常有幫助。 – Federico

2

display屬性是控制佈局的 最重要的CSS屬性。

display:none; 

是爲其只是隱藏從用戶視圖的HTML元素的顯示屬性的值。
如果使用,用戶將看不到所選元素,但是如果您打開頁面HTML源代碼,您將能夠看到元素。
there are many different ways to hide an HTML element從用戶視圖。

jQuery Remove

描述:刪除所述一組從DOM匹配的元素。

它是一個jQuery JavaScript函數,它可以編輯HTML並從頁面中完全刪除選定的元素,所以如果你打開HTML源代碼,你將不會在那裏找到元素。

哪個更快?有兩個不同的東西,所以我不知道如何比較,但可以說你只需要在頁面加載時隱藏一個元素,確保CSS比調用JavaScript庫方法更快,所以我寧願使用CSS如果可能,請使用JavaScript。