繁体   English   中英

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

[英]Is there a way to check if two DOM elements are equal?

在Javascript中通过位置和元素的位置来查找元素是没有问题的。 但是有没有通用的方法来比较它们?

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

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

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

b.isSameNode(a); //false

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

如果要比较两个元素指针是否为同一元素,只需使用比较运算符。 这很容易证明,因为

document.body === document.body

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

if (element1 === element2) ...

=== 运营商仍然相关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.

:)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM