当使用标准JavaScript删除一个元素时,你必须先去它的父元素:
var element = document.getElementById("element-id");
element.parentNode.removeChild(element);
必须先访问父节点对我来说似乎有点奇怪,这是JavaScript这样工作的原因吗?
当使用标准JavaScript删除一个元素时,你必须先去它的父元素:
var element = document.getElementById("element-id");
element.parentNode.removeChild(element);
必须先访问父节点对我来说似乎有点奇怪,这是JavaScript这样工作的原因吗?
当前回答
你可以创建一个remove函数,这样你就不用每次都考虑它了:
function removeElement(id) {
var elem = document.getElementById(id);
return elem.parentNode.removeChild(elem);
}
其他回答
据我所知,Firefox中不能直接删除节点,Internet Explorer中才可以。所以,要支持Firefox,你必须到父节点去移除它的子节点。
裁判:http://chiragrdarji.wordpress.com/2007/03/16/removedelete-element-from-page-using-javascript-working-in-firefoxieopera/
这就是DOM所支持的。在该页面中搜索“remove”或“delete”,removeChild是唯一删除节点的。
你可以简单地使用
document.getElementById("elementID").outerHTML="";
它适用于所有浏览器,甚至是ie浏览器。
根据DOM级别4规范(目前正在开发的版本),有一些新的方便的突变方法可用:append()、prepend()、before()、after()、replace()和remove()。
https://catalin.red/removing-an-element-with-plain-javascript-remove-method/
最短的
我改进Sai Sunder的答案,因为OP使用ID,这允许避免getElementById:
elementId.remove();
box2.remove ();//删除BOX 2 这项“box-3 .remove ();//删除BOX 3(如果Id中有' - '字符) <div id="box1">My BOX 1</div> <div id="box2">My BOX 2</div> <div id=" BOX -3">My BOX 3</div> . <div id="box4">My BOX 4</div> .