How can I test if two jQuery wrapped DOM elements are the same? [duplicate]
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
精彩评论