Reputation: 595
I'm rather confused, what is the difference between elementsWrapper1 and elementsWrapper2? Shouldn't the last log expression evaluate as true?
HTML:
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
JS (jQuery):
var container = $('.container');
var elementsWrapper1 = $('<div>', {
class : 'elements-wrapper'
});
container.children().wrapAll(elementsWrapper1);
var elementsWrapper2 = $('.elements-wrapper');
console.log(elementsWrapper1);
console.log(elementsWrapper2);
//Returns False, but why?
console.log(elementsWrapper1 === elementsWrapper2)
Thanks
Upvotes: 1
Views: 28
Reputation: 780929
Every time you call $()
, either to create an object (as you did with elementsWrapper1
) or perform a selection (as with elementsWrapper2
), it creates a new jQuery object. Even if two jQuery objects refer to the same collection of DOM elements, they're not the same Javascript object, so ===
will consider them non-equal.
If you want to test whether two jQuery objects are equivalent, you can use the .is()
method.
console.log(elementsWrapper1.is(elementsWrapper2));
Upvotes: 1