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

时间:2010-03-05 20:44:57

标签: javascript jquery dom

我正在jQuery中编写一个可排序的列表实现(b / c臭名昭着的scroll-in-div问题,为此有什么新的解决方案吗?)。但是,我不知道如何比较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>

3 个答案:

答案 0 :(得分:65)

可以将jQuery对象视为原始DOM元素的数组。

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

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

答案 1 :(得分:13)

比较里面的DOM元素:

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

答案 2 :(得分:0)

这也是解决此问题的可行方法。您可以比较id属性,因为它们在上面的示例中应该完全相同。

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