2010-05-03 17 views
13

如何檢查2個Dom元素是否相同。檢查2個DOM元素的相等性

形式示例

var element1 = document.getElementById("abc"); 
var element2 = document.getElementById("abc"); 

現在應該怎麼chekc這些2個元素是平等的嗎?

感謝

+0

你問價值平等的參考平等嗎?頁面上可能有兩個DOM元素,它們具有相同的ID,相同的屬性和相同的內容。或者,兩個不同的引用(element1和element2)可能指的是同一個DOM節點。 – 2017-03-12 10:11:48

回答

-23

如果ID是相同的,它們不能不同。如果Ids不同,它們不能相同。所以如果你有兩個ID,你可以比較兩個ID。

+4

兩個元素__的'id'屬性不應該是相同的。但是人們會做奇怪的事情。 – bobobobo 2010-05-03 13:17:34

+7

這是不正確的,任何數量的元素都可以擁有相同的id,但不保證它是唯一的。 – 2011-09-28 18:50:15

+0

我其實是錯的。蒂姆,你應該更好地將波波波波的答案標記爲已接受的答案。 – 2013-07-15 10:27:56

26

element1element2是在DOM tree同一個地方引用。只需檢查

if(element1 == element2) 
{ 
    alert("same") ; 
} 
+1

這是正確的嗎?無論從文檔中檢索到DOM元素,DOM元素是否總是使用相同的JavaScript對象? – 2011-09-15 21:20:42

+5

是的。每個元素都是樹中的一個對象,'element1','element2'僅僅是樹中對象的引用。如果兩個變量引用同一個對象,那麼引用將相等。 – bobobobo 2011-09-16 02:24:13

+0

我知道它們是樹中的元素,我更多地詢問'getElementById()'的內部是否包含像'return new DomElement(...)'這樣的返回元素總是新的實例,雖然它們可能包含相同的信息。但我認爲你是對的,大部分瀏覽器似乎都重用了DOM JS對象。 – 2011-09-28 18:52:41

0

可能會使用.outerHTML。它會生成元素的HTML,包括它本身(不僅僅是.innerHTML的內容)。