Javascript 为什么在jquery中缓存ID时使用索引0?
为什么在下面的代码中使用索引0Javascript 为什么在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中唯一的元素。想象一下,每次你这样做时都会发生: $(
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元素。