有没有办法检查两个DOM元素是否相等?

时间:2010-09-06 05:54:58

标签: javascript dom

按位置和Javascript中元素的位置找到元素没有问题。 但是有比较它们的一般方法吗?

我能想到的唯一方法是比较id或类名,但不是所有元素都有id或类名。

3 个答案:

答案 0 :(得分:45)

如果要将两个元素指针作为同一元素进行比较,只需使用比较运算符即可。这很容易证明,因为

document.body === document.body

例如,如果我以某种方式引用了两个我不知道的元素:

if (element1 === element2) ...

答案 1 :(得分:41)

在现代浏览器中,有两种比较节点的方法。

var a = document.createElement('div');
var b = document.createElement('div');
b.isEqualNode(a); // true

b.isSameNode(a); //false

至于IE,它的DOM元素具有非标准属性uniqueID。 但我无法想象它在这种情况下会有用,因为是的,你实际上可以比较两个指针。

答案 2 :(得分:0)

=== 运算符仍然相关https://developer.mozilla.org/en-US/docs/Web/API/Node/isSameNode

即使您对 DOM 进行了更改,=== 运算符也能正常工作。

const body = document.querySelctor("body"); body.setAttribute("test","done");const _body = document.querySelctor("body"); body === _body // true.

:).