2011-03-25 163 views
1

如何比較兩個jquery對象?jquery對象比較問題

$('<p></p>')[0] === $('<p></p>')[0] 
false 

$('<p></p>') == $('<p></p>') 
false 

$('<p></p>').get() == $('<p></p>').get() 
false 

回答

1

下返回true

$('<p></p>').html() == $('<p></p>').html(); 

是你需要什麼?

編輯:這個老jQuery組^ discussion建議比較純JavaScript中的子節點,因爲每個jQuery對象都是DOM對象的引用數組。此功能也是this SO question上的公認答案。

^嘗試新的jQuery論壇,但它沒有正確導入討論。

+0

不,它沒有什麼回報,這是的innerHTML ... – wizztjh 2011-03-25 06:57:49

+0

,但足夠接近,你得給我一些想法... – wizztjh 2011-03-25 06:58:24

+0

啊是的,對不起,你要比較的對象。他們將是不同的對象。 – andyb 2011-03-25 07:05:45

0

我發現一個愚蠢的解決方案...任何人都變得更好?

$.md5($('<p></p>').get()[0].toString()) ==$.md5($('<p></p>').get()[0].toString())

+0

爲什麼'md5()'?如果md5散列值相等,那麼兩個'.toString()'值(可能)也是如此。 – jensgram 2011-03-25 09:08:05

1
$('<p>') // it creates a new dom element. 
     //Equivalent to document.createElement('p') 

所以兩個

$('<p></p>')[0] and $('<p></p>')[0] 

實際上兩個不同的DOM元素。

1
$('<p></p>')[0].outerHTML === $('<p></p>')[0].outerHTML; // true 
$('<p>hi</p>')[0].outerHTML === $('<p></p>')[0].outerHTML; // false 
+1

嘗試在Firefox中... – 2011-03-25 07:27:58