javascript - 通常如何比较两个 DOM 或 DOM 节点?

标签 javascript dom compare nodes

我正在使用 var win1 = open.window(...); var win2 = open.window(...); 在 Firefox 中打开 2 个选项卡/窗口 - 现在我想比较两个 DOM(文档对象模型)的相似性。 所以我有两个包含非常相似页面的 DOM。这些页面具有相同的 HTML 但执行不同的 JavaScript 文件。

通常我会检查 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

希望这对您有所帮助。

关于javascript - 通常如何比较两个 DOM 或 DOM 节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4441135/

相关文章:

arrays - 将哈希值与 Ruby 中相应的数组值进行比较

javascript - 我们如何使用 DOM 访问单选按钮的值?

jquery - ajax 发布后,附加的 div 未在 IE 8 中显示

xml - 如何与 PostgreSQL 进行 XML 规范比较?

javascript - 一行if语句对应的 'else'是什么?

javascript - 导航(突出显示)表中的指定行

arrays - 比较两个 Double Swift 4 数组

javascript - 在地址自动完成 api 中结合街道号码和路线

javascript - 如何通过单击从表格行中获取文本

javascript - 类似谷歌地图的图像缩放功能,可以在网络上加载图像切片?