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