有沒有像document.getElementById("FirstDiv").clear()
這樣的功能?如何使用JavaScript刪除HTML中的子節點?
回答
要回答原來的問題刪除你的節點上設置任何事件處理程序 - 有多種方法可以做到這一點,但以下將是最簡單的。
如果您已經有一個句柄,你要刪除的子節點,即必須持有對它的引用一個JavaScript變量:
myChildNode.parentNode.removeChild(myChildNode);
顯然,如果你不使用的一個已經做了許多庫,你想創建一個函數來抽象了這一點:
function removeElement(node) {
node.parentNode.removeChild(node);
}
編輯:由於已被他人提及:如果您有任何事件處理程序連接好對於要刪除的節點,在刪除節點的最後一個引用超出範圍之前,您需要確保斷開連接,以免JavaScript解釋器的糟糕實現泄漏內存。
「糟糕的實現」。你的意思是IE6,IE7,IE8還是別的? (尤其是,好的瀏覽器是否也會泄漏內存?我目前不再關心IE 6-7。) – 2012-09-13 22:00:58
您應該能夠使用節點的.RemoveNode方法或父節點的.RemoveChild方法。
removeNode僅僅是IE。 – 2012-09-13 22:03:26
如果你想清除div和刪除所有子節點,你可以把:
var mydiv = document.getElementById('FirstDiv');
while(mydiv.firstChild) {
mydiv.removeChild(mydiv.firstChild);
}
你應該使用一個JavaScript庫做這樣的事情。
例如,MochiKit具有功能removeElement,而jQuery具有remove。
你可以將其取出,以避免內存泄漏在IE
IE8是否泄露? – 2012-09-13 22:02:26
一個jQuery的解決方案
HTML
<select id="foo">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
的Javascript
// remove child "option" element with a "value" attribute equal to "2"
$("#foo > option[value='2']").remove();
// remove all child "option" elements
$("#foo > option").remove();
參考文獻:
Attribute Equals Selector [name=value]
選擇具有與值 恰好等於一定值時 指定的屬性的元素。
Child Selector (「parent > child」)
選擇所有直接子元素 通過元素的 「小孩」 由 「父」 規定指定
到.empty類似( ),.remove() 方法從DOM中取出元素。 我們使用.remove()當我們想要 刪除元素本身,以及 裏面的一切。除了 元素本身,所有綁定的事件和與 關聯的jQuery數據之外,元素都被刪除。
使用下面的代碼:
//for Internet Explorer
document.getElementById("FirstDiv").removeNode(true);
//for other browsers
var fDiv = document.getElementById("FirstDiv");
fDiv.removeChild(fDiv.childNodes[0]); //first check on which node your required node exists, if it is on [0] use this, otherwise use where it exists.
targetNode.remove()
這是由W3C推薦爲2015年年底,並香草JS。比以前的方法更好/更乾淨。
對於你的使用情況:
document.getElementById("FirstDiv").remove();
如果您需要填充工具以確保向後兼容性:
if (!('remove' in Element.prototype)) {
Element.prototype.remove = function() {
if (this.parentNode) {
this.parentNode.removeChild(this);
}
};
}
var p=document.getElementById('childId').parentNode;
var c=document.getElementById('childId');
p.removeChild(c);
alert('Deleted');
p是父節點和c的子節點
parentNode是包含父親參考的JavaScript變量
容易理解
- 1. 如何使用純javascript從子節點中刪除所有類?
- 2. 使用JavaScript刪除節點
- 3. 如何用HtmlAgilityPack刪除空html節點?
- 4. 刪除HTML節點
- 5. 如何使用java中的jdom從節點中刪除孩子?
- 6. 刪除子節點
- 7. 禁用/刪除子節點?
- 8. 如何刪除節點的孩子?
- 9. XML:刪除節點的子節點
- 10. 刪除無子節點的父節點
- 11. 刪除div節點的子節點
- 12. C#使用newtonsoft刪除json子節點
- 13. JAVA-如何使用StAX基於子節點從xml中刪除父節點
- 14. 從xmlDoc中刪除節點,如何刪除父節點?
- 15. 如何使用PowerShell刪除XML節點?
- 16. 如何刪除節點列表的子節點?
- 17. 基於父節點刪除子節點
- 18. 如何使用JavaScript刪除一段HTML
- 19. 刪除一個子節點
- 20. 刪除子節點錯誤
- 21. 如何使用boost lib刪除最後一個xml節點及其子節點?
- 22. 刪除RABL中的子根節點
- 23. 如果子節點不存在於XML中使用xslt刪除父節點
- 24. 如何使用OmniXML刪除一個子節點?
- 25. 使用Powershell刪除節點
- 26. 如何從iOS中的HTML中刪除節點
- 27. 從shell中刪除HTML節點
- 28. JSON.NET如何刪除節點
- 29. 如何刪除XML節點?
- 30. 如何使用JavaScript循環瀏覽XML節點和子節點?
`node.remove();`是現代的方式來做到這一點。 `document.getElementById(「FirstDiv」)。remove();`用於你的用例 – Gibolt 2016-11-11 08:21:28