Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery对象比较_Javascript_Jquery - Fatal编程技术网

Javascript jQuery对象比较

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

根据jQuery文档,“并不是所有jQuery对象都被创建==”

关于此“包装”行为的一个重要细节是,每个包装的对象都是唯一的。即使该对象是使用相同的选择器创建的,或者包含对完全相同的DOM元素的引用,也是如此


我知道如何解决这个问题,但为什么会这样?这是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