Javascript jQuery对象比较
根据jQuery文档,“并不是所有jQuery对象都被创建==” 关于此“包装”行为的一个重要细节是,每个包装的对象都是唯一的。即使该对象是使用相同的选择器创建的,或者包含对完全相同的DOM元素的引用,也是如此Javascript jQuery对象比较,javascript,jquery,Javascript,Jquery,根据jQuery文档,“并不是所有jQuery对象都被创建==” 关于此“包装”行为的一个重要细节是,每个包装的对象都是唯一的。即使该对象是使用相同的选择器创建的,或者包含对完全相同的DOM元素的引用,也是如此 我知道如何解决这个问题,但为什么会这样?这是JavaScript的特定行为方式吗?是的。JS中的每个对象都是唯一的,因为除非o1和o2是指向同一对象的指针,否则o1===o2将不为真 { foo: 1 } === { foo: 1 }; // false 因此jQuery对象只需遵循
我知道如何解决这个问题,但为什么会这样?这是JavaScript的特定行为方式吗?是的。JS中的每个对象都是唯一的,因为除非
o1
和o2
是指向同一对象的指针,否则o1===o2
将不为真
{ foo: 1 } === { foo: 1 }; // false
因此jQuery对象只需遵循相同的规则:
var jq1 = $('.foo');
var jq2 = $('.foo');
jq1 === jq2; // false
唯一的例外是,如果您有实际指向同一jQuery对象的变量:
var jq3 = jq1;
jq3 === jq1; // true
对。JS中的每个对象都是唯一的,因为除非
o1
和o2
是指向同一对象的指针,否则o1===o2
将不为真
{ foo: 1 } === { foo: 1 }; // false
因此jQuery对象只需遵循相同的规则:
var jq1 = $('.foo');
var jq2 = $('.foo');
jq1 === jq2; // false
唯一的例外是,如果您有实际指向同一jQuery对象的变量:
var jq3 = jq1;
jq3 === jq1; // true