如何比较两个DOM或DOM节点?
问题描述:
我使用var win1 = open.window(...); var win2 = open.window(...);
在Firefox中打开2个选项卡/窗口 - 现在我想比较两个DOM(文档对象模型)的相似性。 所以我有两个包含非常类似页面的DOM。这些页面具有相同的HTML,但执行了不同的JavaScript文件。如何比较两个DOM或DOM节点?
总的来说,我检查HTML和CSS是一样的:
var html1 = win1.document.body.innerHTML;
var html2 = win2.document.body.innerHTML;
if (html1 == html2) { ... }
var css1 = win1.document.body.style.cssText
var css2 = win2.document.body.style.cssText
if (css1 == css2) { ... }
但对比所有DOM节点似乎给了不好的结果:
var bodyNodes1 = win1.document.body.getElementsByTagName('*');
var bodyNodes2 = win2.document.body.getElementsByTagName('*');
bodyNodes1[123].innerHTML
时并不需要类似bodyNodes2[123].innerHTML
哪些方法可用于比较DOM节点? 是否存在用于测试相似度页面的任何框架/库/脚本?
我非常感谢任何提示。 :-)
答
我想你在找什么可以是:
isEqualNode:http://help.dottoro.com/ljlpvjmd.php
isSameNode:http://help.dottoro.com/ljqqqfft.php
希望这有助于。
'isSameNode'已弃用。请参阅https://developer.mozilla.org/en-US/docs/DOM/Node.isSameNode以及http://stackoverflow.com/questions/3649321/is-there-a-way-to-check-if-if-两个dom元素是相等的 – 2012-11-07 12:23:04
isEqualNode在IE上不起作用。我正在寻找一种方式。 – 2012-12-27 00:33:58