Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试从Dom文档中删除Dom节点时出错_Javascript_Dom_Asp Classic - Fatal编程技术网

Javascript 尝试从Dom文档中删除Dom节点时出错

Javascript 尝试从Dom文档中删除Dom节点时出错,javascript,dom,asp-classic,Javascript,Dom,Asp Classic,我有以下ASP(js版本)代码: 到目前为止,一切顺利。这就是我遇到麻烦的地方: if ((elements) && (elements.length > 0)) doc.removeChild(elements[0]); 最后一段代码导致我的网站显示“页面无法显示”消息。是不是在幕后发生了一些我不理解的事情?为什么我不能删除子节点?添加节点与修改现有节点的属性一样可以正常工作,但我无法删除节点。removeChild()应在要删除的节点的父节点上调用,如下所示: if

我有以下ASP(js版本)代码:

到目前为止,一切顺利。这就是我遇到麻烦的地方:

if ((elements) && (elements.length > 0))
doc.removeChild(elements[0]);
最后一段代码导致我的网站显示“页面无法显示”消息。是不是在幕后发生了一些我不理解的事情?为什么我不能删除子节点?添加节点与修改现有节点的属性一样可以正常工作,但我无法删除节点。

removeChild()
应在要删除的节点的父节点上调用,如下所示:

if (elements && elements.length > 0)
    elements[0].parentNode.removeChild(elements[0]);
或者,有时有一个助手功能会很有帮助:

function removeNode(node) {
    node.parentNode.removeChild(node);
}
然后,你可以这样做:

if (elements && elements.length > 0)
    removeNode(elements[0]);

+1一个完全脱离主题的注意事项是,条件的
元素&&
部分是不必要的,因为集合总是会被返回的。谢谢,这似乎起到了作用。我从w3schools那里得到了我的例子,他们并不总是提供直接的信息。我从谷歌搜索中屏蔽了w3schools,因为他们有如此糟糕和不完整的信息。使用其他来源。MDN是更好的来源之一。我用MDN关键词来概括我的大部分搜索,看看他们说的是什么。@ JFrave0:在W3SARS辩护中,我认为W3CARS是一个完整的新手学习一门学科的好地方。它的短小和不完整的性质打开了一个主题,而其他来源往往无法做到这一点。一旦开发人员从中吸收了足够的知识,他们就不应该将其作为参考,而是应该了解他们所使用的技术背后的公司的更完整的参考作品。在服务器端代码中使用HTMLDOM是一种有趣的方法。然而,我担心使用的组件可能会在ASP服务器的客户端应用程序中使用。
if (elements && elements.length > 0)
    removeNode(elements[0]);