如何测试两个jQuery包装的DOM元素是否相同? [英] How can I test if two jQuery wrapped DOM elements are the same?

查看:90
本文介绍了如何测试两个jQuery包装的DOM元素是否相同?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在jQuery中编写一个可排序的列表实现(在臭名昭着的scroll-in-div问题的b / c中,是否有任何新的解决方案?)。然而,我不知道如何比较元素(在mousedown / mouseup上触发),它们被包装在jQuery中。在原型中,它始终是ele.domNode。



这是我想要完成的本质...

 < div id =cheese>< / div> 
< div id =burger>< / div>

< script>

//包含在jquery中的一些dom节点
var ele1 = $('#cheese');
var ele2 = $('#burger');
var ele3 = $('#burger');

//在ele1(#cheese)中包含的dom节点是否与ele2(#burger)相同?
如果(ele1 == ele2)
{
//应该永远不是真的
}

// dom节点是否包裹在ele2(#汉堡)与el32(#burger)相同?
if(ele2 == ele3)
{
//应始终为真
}

< / script>


解决方案

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



您可以比较原始的DOM元素,如下所示:

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


I'm writing a sortable list implementation in jQuery (b/c of the infamous scroll-in-div issue, any new solutions for this?). However, I don't know how to compare the elements (triggered on mousedown/mouseup) after they've been wrapped in jQuery. In prototype, it was always ele.domNode.

This is what I'm trying to accomplish in essence...

<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>

解决方案

A jQuery object can be treated as an array of raw DOM elements.

You can compare the raw DOM elements like this:

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

这篇关于如何测试两个jQuery包装的DOM元素是否相同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆