按位置和Javascript中元素的位置找到元素没有问题。 但是有比较它们的一般方法吗?
我能想到的唯一方法是比较id或类名,但不是所有元素都有id或类名。
答案 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.
:).