我希望您能快速查看两个元素是否相等,无论它们有什么子元素。isEqualNode不起作用,因为它也比较了元素的子节点。
所以,在这个例子中,我想编写一个函数,如果给出两个
所以,在这个例子中,我想编写一个函数,如果给出两个
<div class="foo" style="background-color: green;">
元素作为参数,即使它们具有不同的子元素,也会返回true。<div class="foo" style="background-color: green;">
<h3>bar</h3>
Hello
</div>
<div class="foo" style="background-color: green;">
<div class="goat" />
</div>
<script>
function checkIfParentNodesAreEqual(el1, el2) { /* magic */}
var els = document.getElementsByClassName('foo');
checkIfParentNodesAreEqual(els[0], els[1]) // I want this to return true
</script>
我在想,从性能角度来看,如何判断这两个元素是否相等?
我知道我们可以对这两个节点进行浅克隆并比较克隆体,或者删除所有子节点,比较父节点,然后重新附加子节点,但我想知道是否有更快的方法。
isEqualNode
也会返回false
,例如:<div class="foo" style="background-color: green;color:red;">
和<div class="foo" style="color:red;background-color: green;">
。 - JohanP