jQuery引用创建的元素

时间:2016-04-11 19:43:28

标签: javascript jquery html

我很困惑,elementsWrapper1和elementsWrapper2有什么区别?不应该将最后一个日志表达式评估为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)

由于

1 个答案:

答案 0 :(得分:1)

每次调用$()时,要么创建一个对象(就像使用elementsWrapper1那样)或执行选择(与elementsWrapper2一样),它会创建一个新的jQuery对象。即使两个jQuery对象引用相同的DOM元素集合,它们也不是相同的Javascript对象,因此===会认为它们不相等。

如果要测试两个jQuery对象是否等效,可以使用.is()方法。

console.log(elementsWrapper1.is(elementsWrapper2));

请参阅jQuery object equality