jquery对象比较问题

问题描述:

如何比较两个jquery对象?jquery对象比较问题

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

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

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

下返回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

我发现一个愚蠢的解决方案...任何人都变得更好?

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

+0

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

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

所以两个

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

实际上两个不同的DOM元素。

$('<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