使用标准JavaScript删除元素时,必须先转到其父级:
var element = document.getElementById("element-id");
element.parentNode.removeChild(element);
Run Code Online (Sandbox Code Playgroud)
首先必须转到父节点对我来说有点奇怪,JavaScript是否有这样的原因?
我将如何在JavaScript中删除DOM节点的所有子元素?
说我有以下(丑陋的)HTML:
<p id="foo">
<span>hello</span>
<div>world</div>
</p>
Run Code Online (Sandbox Code Playgroud)
我抓住了我想要的节点:
var myNode = document.getElementById("foo");
Run Code Online (Sandbox Code Playgroud)
我该怎样才能删除foo刚<p id="foo"></p>离开的孩子?
我可以这样做:
myNode.childNodes = new Array();
Run Code Online (Sandbox Code Playgroud)
或者我应该使用某种组合removeElement?
我希望答案是直接的DOM; 如果您还提供jQuery中的答案以及仅限DOM的答案,那么可以提供额外的分数.
我正在尝试测试DOM元素是否存在,如果它存在则删除它,如果它不存在则创建它.
var duskdawnkey = localStorage["duskdawnkey"];
var iframe = document.createElement("iframe");
var whereto = document.getElementById("debug");
var frameid = document.getElementById("injected_frame");
iframe.setAttribute("id", "injected_frame");
iframe.setAttribute("src", 'http://google.com');
iframe.setAttribute("width", "100%");
iframe.setAttribute("height", "400");
if (frameid) // check and see if iframe is already on page
{ //yes? Remove iframe
iframe.removeChild(frameid.childNodes[0]);
} else // no? Inject iframe
{
whereto.appendChild(iframe);
// add the newly created element and it's content into the DOM
my_div = document.getElementById("debug");
document.body.insertBefore(iframe, my_div);
}
Run Code Online (Sandbox Code Playgroud)
检查它是否存在有效,创建元素有效,但删除元素则不起作用.基本上所有这些代码都是通过单击按钮将iframe注入网页.我想要发生的是iframe已经在那里删除它.但由于某种原因,我失败了.