开发者

How can I test if two jQuery wrapped DOM elements are the same? [duplicate]

This question already has answers here: jQuery compare two DOM开发者_开发问答 object? (2 answers) Closed 6 years ago.

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


Compare the DOM elements inside like this:

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


This is also a possible way to solve this problem. You can compare the id attributes since they should be the exact same in your example above.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜