Javascript 两个html DOM何时相等?

Javascript 两个html DOM何时相等?,javascript,html,dom,Javascript,Html,Dom,如果DOM的顺序不同,但每种类型的元素数相同,则它们是否相等 像这样: First DOM Element ="<div> <img/> <span/> <div> <img/> </div>

如果DOM的顺序不同,但每种类型的元素数相同,则它们是否相等

像这样:

First DOM Element ="<div>
                     <img/>
                     <span/>
                     <div>
                       <img/>
                     </div>
                    </div>";

Second DOM Element = "<div>
                       <img/>
                       <img/>
                       <span>
                         <div/>
                       </span>
                      </div>";
第一个DOM元素=”
";
第二个DOM元素=”
";
在这个示例中,当我有相同数量的元素类型时,元素的顺序是否重要,DOM是否仍然相等

感谢来自以下网站的

如果以下所有条件均为真,则节点“A”等于节点“B”:

[为简洁起见,删除了其他条件]

•在相同的索引中,“A”的每个子级等于“B”的子级


因此,如果子元素的顺序不同,则认为它们不相等。

在比较具有子元素的元素节点时,
.isEqualNode()
递归应用于对应索引处的成对子节点,并且每个子节点必须彼此相等

因此,DOM子树结构必须看起来完全相同。也就是说,
A.childNodes[0]
的值必须与
B.childNodes[0]
的值相等(根据
.isEqualNode()
的规则),依此类推


请注意,
.isEqualNode()
还有其他规则:属性必须相同且值相同,显然节点类型必须相同,等等。

不,它们不相等,因为firstElement是:

1分区

|_1 img

|_1跨

|_1分区

……等等

第二个则包含:

1分区


|_2 img我想你已经回答了你自己的问题-如果使用
isEqualNode
,那么答案是“不,它们不相等”。我想我的问题还不够清楚,我的目的是了解两个DOM何时相等以及在什么条件下相等,这样我就从我的问题中删除了isEqualNode函数如果你没有定义比较的方法,那么我们就无法回答这个问题。你只是在计算元素的数量吗?还是比较所有子元素的结构?如果你只是问“DOMs是否相等”,如果我们不知道比较器,我们就无法回答。@MattJones谢谢你的反馈谢谢@Matt Jones,这就是我要找的。