使用JavaScript中的XPath表达式在框架集上迭代?

使用JavaScript中的XPath表达式在框架集上迭代?,javascript,dom,frameset,document.evaluate,Javascript,Dom,Frameset,Document.evaluate,为什么在Firefox 3.6.3中运行以下JavaScript时会删除文档中的所有FRAMESET元素,而使用XPath表达式选择FRAMESET元素的类似脚本却不会删除?是不是document.evaluate()根本无法匹配FRAMESET元素?XPath表达式中是否存在错误?还有其他错误吗 使用方法document.getElementsByTagName()(成功)选择所有FRAMESET元素: 看起来XPathResult是迭代器ish。它没有长度属性 帧集。长度将是未定义的。总之

为什么在Firefox 3.6.3中运行以下JavaScript时会删除文档中的所有
FRAMESET
元素,而使用XPath表达式选择
FRAMESET
元素的类似脚本却不会删除?是不是
document.evaluate()
根本无法匹配
FRAMESET
元素?XPath表达式中是否存在错误?还有其他错误吗

使用方法
document.getElementsByTagName()
(成功)选择所有
FRAMESET
元素:


看起来XPathResult是迭代器ish。它没有长度属性


帧集。长度将是未定义的。总之,这里有龙。

是的,你说得对。我正要给出一个类似的答案,但你抢先了!如果你能把答案复制到这里就好了,因为那页已经不存在了。
var framesets = document.getElementsByTagName('frameset');
for (var i = 0; i < framesets.length; i++) {
  framesets[i].parentNode.removeChild(framesets[i]);
}
var framesets = document.evaluate("//frameset", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i = 0; i < framesets.length; i++) {
  framesets[i].parentNode.removeChild(framesets[i]);
}