2

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

var doc = Server.CreateObject("HTMLFILE");
var doc.write(content);
// the value of content has been set elsewhere and is not of concern
var elements = doc.getElementsByTagName("br");

到目前为止,一切都很好。这是我遇到麻烦的地方:

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

最后一段代码导致我的网站显示“页面无法显示”消息。幕后发生了什么我不理解的事情吗?为什么我不能删除子节点?附加节点与修改现有节点的属性一样工作正常,但我无法删除节点。

4

1 回答 1

2

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]);
于 2012-05-28T18:36:45.087 回答