我如何testing两个jQuery包装的DOM元素是否相同?

我在jQuery中编写了一个可sorting的列表实现(臭名昭着的scroll-in-div问题的b / c,任何新的解决scheme?)。 但是,我不知道如何比较jQuery中的元素(在mousedown / mouseup上触发)。 在原型中,它总是ele.domNode。

这是我正在努力实现的…

<div id="cheese"></div> <div id="burger"></div> <script> // Some dom nodes wrapped in jquery var ele1 = $('#cheese'); var ele2 = $('#burger'); var ele3 = $('#burger'); // Is the dom node wrapped in ele1 (#cheese) the same as in ele2 (#burger)? if (ele1 == ele2) { // Should never be true } // Is the dom node wrapped in ele2 (#burger) the same as in el32 (#burger)? if (ele2 == ele3) { // Should always be true } </script> 

一个jQuery对象可以被看作是一个原始DOM元素的数组。

您可以像这样比较原始的DOM元素:

 if(ele2[0] === ele3[0]) 

比较像这样的DOM元素:

 if (ele1.get(0) == ele2.get(0)) 

这也是解决这个问题的一个可能的方法。 你可以比较id属性,因为它们在上面的例子中应该是完全相同的。

 ele1.attr("id") == ele2.attr("id"); //returns false ele2.attr("id") == ele3.attr("id"); //returns true