[英]JavaScript appended child (div) only shows up after ALL code has been executed
[英]How can I delete all Child Nodes inside a div in one shot in such a way it is empty after that code lines are executed using javascript?
我正在嘗試在javascript中實現一段代碼,該代碼以一種在執行代碼后為空的方式刪除div中的所有子節點。 我當時在考慮使用while
循環並將hasChildNodes()
方法應用於此div,然后在循環的參數內插入一行代碼,該代碼行將在每次檢查中刪除該div的第一個孩子,直到它刪除所有子Node,但我覺得這很麻煩。 是否有使用某種方法擺脫div中所有元素的更快方法?
jQuery的$ .html()方法。
像這樣:
$('#parent').html('');
里面的所有子元素都將替換為'';
要么
$('div').children().each(function(index){
$(this).remove();
});
如果您不使用jQuery,dojo之類的庫或在子節點上使用SVG或事件,則是一種選擇:
var node = document.getElementById("foo");
node.innerHTML = "";
如果使用的是dojo或jQuery之類的庫,則將避免內存泄漏,因為不會清除對javascript子節點的引用,因此dom節點永遠不會釋放。
始終使用適當的庫方法清除DOM,以便它可以釋放事件注冊,節點引用,例如jQuery:api.jquery.com/empty
如果打算使用子節點和文本清除div,則可以將其innerHTML設置為空文本。
var target = document.getElementById("target"); setTimeout(function() { target.innerHTML = ""; },3000);
The text below will disappear after three seconds. <div id="target"> Some text. <div> Some text inside a child node. </div> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.