如何檢查2個Dom元素是否相同。檢查2個DOM元素的相等性
形式示例
var element1 = document.getElementById("abc");
var element2 = document.getElementById("abc");
現在應該怎麼chekc這些2個元素是平等的嗎?
感謝
如何檢查2個Dom元素是否相同。檢查2個DOM元素的相等性
形式示例
var element1 = document.getElementById("abc");
var element2 = document.getElementById("abc");
現在應該怎麼chekc這些2個元素是平等的嗎?
感謝
如果ID是相同的,它們不能不同。如果Ids不同,它們不能相同。所以如果你有兩個ID,你可以比較兩個ID。
兩個元素__的'id'屬性不應該是相同的。但是人們會做奇怪的事情。 – bobobobo 2010-05-03 13:17:34
這是不正確的,任何數量的元素都可以擁有相同的id,但不保證它是唯一的。 – 2011-09-28 18:50:15
我其實是錯的。蒂姆,你應該更好地將波波波波的答案標記爲已接受的答案。 – 2013-07-15 10:27:56
element1
和element2
是在DOM tree同一個地方引用。只需檢查
if(element1 == element2)
{
alert("same") ;
}
這是正確的嗎?無論從文檔中檢索到DOM元素,DOM元素是否總是使用相同的JavaScript對象? – 2011-09-15 21:20:42
是的。每個元素都是樹中的一個對象,'element1','element2'僅僅是樹中對象的引用。如果兩個變量引用同一個對象,那麼引用將相等。 – bobobobo 2011-09-16 02:24:13
我知道它們是樹中的元素,我更多地詢問'getElementById()'的內部是否包含像'return new DomElement(...)'這樣的返回元素總是新的實例,雖然它們可能包含相同的信息。但我認爲你是對的,大部分瀏覽器似乎都重用了DOM JS對象。 – 2011-09-28 18:52:41
可能會使用.outerHTML。它會生成元素的HTML,包括它本身(不僅僅是.innerHTML的內容)。
查看dom節點的api。看來你可以使用isEqualNode來實現這一點。
https://developer.mozilla.org/en-US/docs/Web/API/Node/isEqualNode
你問價值平等的參考平等嗎?頁面上可能有兩個DOM元素,它們具有相同的ID,相同的屬性和相同的內容。或者,兩個不同的引用(element1和element2)可能指的是同一個DOM節點。 – 2017-03-12 10:11:48