Javascript 为什么在jquery中缓存ID时使用索引0?

Javascript 为什么在jquery中缓存ID时使用索引0?,javascript,performance,caching,optimization,jquery-selectors,Javascript,Performance,Caching,Optimization,Jquery Selectors,为什么在下面的代码中使用索引0 var $one = $('#one')[0]; 为什么不直接使用var$one=$('#one') 参考 我在阅读时发现了上面的代码,这是因为$('#one')是一个jQuery对象,它是一个包含元素的“类似数组”的对象。由于jQuery对象是“类似数组”的对象,因此添加[0]将检索对象中的第一个也是唯一一个元素 至于优化,在选择器上操作会使jQuery(确切地说是Sizzle)在DOM中运行,并查找DOM中唯一的元素。想象一下,每次你这样做时都会发生: $(

为什么在下面的代码中使用索引0

var $one = $('#one')[0];
为什么不直接使用
var$one=$('#one')

参考

我在阅读时发现了上面的代码,这是因为
$('#one')
是一个jQuery对象,它是一个包含元素的“类似数组”的对象。由于jQuery对象是“类似数组”的对象,因此添加
[0]
将检索对象中的第一个也是唯一一个元素

至于优化,在选择器上操作会使jQuery(确切地说是Sizzle)在DOM中运行,并查找DOM中唯一的元素。想象一下,每次你这样做时都会发生:

$('#one')
这就是为什么,他们不是每次都在选择器上操作并运行DOM,而是缓存DOM元素。您可以使用现有的元素引用轻松地重新创建jQuery对象,与再次运行DOM相比,这并没有太大的开销

var one = $('#one')[0]

// or synonymously
var one = document.getElementById('one');

// No running anymore through the DOM in search for "one" because jQuery simply
// uses this reference instead.
var theOne = $(one);

//Another jQuery object, but uses the same "one" fetched earlier
var anotherOne = $(one); 
这是因为
$('#one')
是一个jQuery对象,它是一个包含元素的“类似数组”的对象。由于jQuery对象是“类似数组”的对象,因此添加
[0]
将检索对象中的第一个也是唯一一个元素

至于优化,在选择器上操作会使jQuery(确切地说是Sizzle)在DOM中运行,并查找DOM中唯一的元素。想象一下,每次你这样做时都会发生:

$('#one')
这就是为什么,他们不是每次都在选择器上操作并运行DOM,而是缓存DOM元素。您可以使用现有的元素引用轻松地重新创建jQuery对象,与再次运行DOM相比,这并没有太大的开销

var one = $('#one')[0]

// or synonymously
var one = document.getElementById('one');

// No running anymore through the DOM in search for "one" because jQuery simply
// uses this reference instead.
var theOne = $(one);

//Another jQuery object, but uses the same "one" fetched earlier
var anotherOne = $(one); 
这是因为
$('#one')
是一个jQuery对象,它是一个包含元素的“类似数组”的对象。由于jQuery对象是“类似数组”的对象,因此添加
[0]
将检索对象中的第一个也是唯一一个元素

至于优化,在选择器上操作会使jQuery(确切地说是Sizzle)在DOM中运行,并查找DOM中唯一的元素。想象一下,每次你这样做时都会发生:

$('#one')
这就是为什么,他们不是每次都在选择器上操作并运行DOM,而是缓存DOM元素。您可以使用现有的元素引用轻松地重新创建jQuery对象,与再次运行DOM相比,这并没有太大的开销

var one = $('#one')[0]

// or synonymously
var one = document.getElementById('one');

// No running anymore through the DOM in search for "one" because jQuery simply
// uses this reference instead.
var theOne = $(one);

//Another jQuery object, but uses the same "one" fetched earlier
var anotherOne = $(one); 
这是因为
$('#one')
是一个jQuery对象,它是一个包含元素的“类似数组”的对象。由于jQuery对象是“类似数组”的对象,因此添加
[0]
将检索对象中的第一个也是唯一一个元素

至于优化,在选择器上操作会使jQuery(确切地说是Sizzle)在DOM中运行,并查找DOM中唯一的元素。想象一下,每次你这样做时都会发生:

$('#one')
这就是为什么,他们不是每次都在选择器上操作并运行DOM,而是缓存DOM元素。您可以使用现有的元素引用轻松地重新创建jQuery对象,与再次运行DOM相比,这并没有太大的开销

var one = $('#one')[0]

// or synonymously
var one = document.getElementById('one');

// No running anymore through the DOM in search for "one" because jQuery simply
// uses this reference instead.
var theOne = $(one);

//Another jQuery object, but uses the same "one" fetched earlier
var anotherOne = $(one); 

它们并不等同

var $one = $('#one')[0];
缓存匹配的选择器
#one
。为了将其转换回jQuery对象,您需要执行
$($one)
以使用任何jQuery函数,例如
$($one).addClass(“示例”)

缓存jQuery对象,因此您可以调用:
$one.addClass(“示例”)

哪一个是正确的取决于对
$one
对象的要求以及如何使用它


对于上述情况。

它们并不等同

var $one = $('#one')[0];
缓存匹配的选择器
#one
。为了将其转换回jQuery对象,您需要执行
$($one)
以使用任何jQuery函数,例如
$($one).addClass(“示例”)

缓存jQuery对象,因此您可以调用:
$one.addClass(“示例”)

哪一个是正确的取决于对
$one
对象的要求以及如何使用它


对于上述情况。

它们并不等同

var $one = $('#one')[0];
缓存匹配的选择器
#one
。为了将其转换回jQuery对象,您需要执行
$($one)
以使用任何jQuery函数,例如
$($one).addClass(“示例”)

缓存jQuery对象,因此您可以调用:
$one.addClass(“示例”)

哪一个是正确的取决于对
$one
对象的要求以及如何使用它


对于上述情况。

它们并不等同

var $one = $('#one')[0];
缓存匹配的选择器
#one
。为了将其转换回jQuery对象,您需要执行
$($one)
以使用任何jQuery函数,例如
$($one).addClass(“示例”)

缓存jQuery对象,因此您可以调用:
$one.addClass(“示例”)

哪一个是正确的取决于对
$one
对象的要求以及如何使用它

对于以上内容。

var$one=$(“#one')[0]将返回实际的DOM元素

var$one=$('#one')
将返回包装好的jQuery对象。

var$one=$('#one')[0]将返回实际的DOM元素

var$one=$('#one')
将返回包装好的jQuery对象。

var$one=$('#one')[0]将返回实际的DOM元素

var$one=$('#one')
将返回包装好的jQuery对象。

var$one=$('#one')[0]将返回实际的DOM元素


var$one=$('#one')将返回包装好的jQuery对象。

jQuery集合vs DOM元素。jQuery集合vs DOM元素。jQuery集合vs DOM元素。jQuery集合vs DOM元素。jQuery集合vs DOM元素。