[0]在jQuery选择器中做什么?

[0]在jQuery选择器中做什么?,jquery,Jquery,对 var example = $("#myElement")[0]; 有什么区别?这是怎么回事?示例变量在每次选择后包含什么?jQuery对象(从$函数返回的值)是DOM元素的集合(“类似数组的”对象)$(“#myElement”)[0]从该数组中获取第一个元素,即本机DOM元素 还可以执行$(“#myElement”)。获取(0)jQuery对象(从$函数返回的值)是DOM元素的集合(“类似数组的”对象)$(“#myElement”)[0]从该数组中获取第一个元素,即本机DOM元素 您也可

var example = $("#myElement")[0];
有什么区别?这是怎么回事?示例变量在每次选择后包含什么?

jQuery对象(从
$
函数返回的值)是DOM元素的集合(“类似数组的”对象)
$(“#myElement”)[0]
从该数组中获取第一个元素,即本机DOM元素

还可以执行
$(“#myElement”)。获取(0)

jQuery对象(从
$
函数返回的值)是DOM元素的集合(“类似数组的”对象)
$(“#myElement”)[0]
从该数组中获取第一个元素,即本机DOM元素

您也可以执行
$(“#myElement”)。获取(0)
$(“#myElement”)[0]
选择选择器返回的第一个项目

$(“#myElement”)
提供选择器返回的每个项目

在您的示例中,您使用的是一个id,因此您应该只有一个具有任何给定id的项

但是,如果你这样做了,例如

$('.test').hide()
,它将用一个测试类隐藏每个元素

$('.test')[0].hide()
只会隐藏第一项
$(“#myElement”)[0]
选择选择器返回的第一项

$(“#myElement”)
提供选择器返回的每个项目

您在示例中使用id,因此您应该只有1个具有给定id的项

但是,如果你这样做了,例如

$('.test').hide()
,它将用一个测试类隐藏每个元素



$('.test')[0].hide()
只会隐藏第一个项

它会返回数组中的第一个元素,就像对象一样。结果将与执行
document.getElementById('myElement')
相同,如果我们想当然地认为它返回“类似数组的对象”,这将是一个很好的答案,我们没有这样做,因为我不知道您在说什么。我没有说它返回类似数组的对象。我说过它会返回数组中的第一个元素,比如对象。第一个元素只会返回第一个
#myElement
。第二个将返回所有的
#myElement
。您会惊讶地发现,搜索[0]这样的东西有多么困难。如果您已经知道它的名称,那么很容易找到它。它返回数组中的第一个元素,类似于对象。结果将与执行
document.getElementById('myElement')
相同,如果我们想当然地认为它返回“类似数组的对象”,这将是一个很好的答案,我们没有这样做,因为我不知道您在说什么。我没有说它返回类似数组的对象。我说过它会返回数组中的第一个元素,比如对象。第一个元素只会返回第一个
#myElement
。第二个将返回所有的
#myElement
。您会惊讶地发现,搜索[0]这样的东西有多么困难。如果您已经知道它的名称,那么从技术上讲,很容易找到类似.array的对象。但是,为什么您可以执行$(“#myElement”).hide()之类的操作呢。为什么不执行$(“#myElement”)[0].hide()?我个人不会在这里使用
$(“#myElement”)
作为示例,因为
$(“#myElement”)
应该始终返回一个元素,因为ID应该是唯一的。类(
$(“.myElement”)
)可能是一个更现实的例子。不,这正是我的观点。既然只有一个ID,为什么还要将[0]与ID一起使用?也就是说,如果类似数组的对象的大小为1,那么使用[0]没有任何区别吗?@Aerovistae:因为
.hide()
是一种jQuery方法。从技术上讲,本机DOM元素没有类似于
.hide()
method.array的对象。但是,为什么可以执行$(“#myElement”).hide()之类的操作呢。为什么不执行$(“#myElement”)[0].hide()?我个人不会在这里使用
$(“#myElement”)
作为示例,因为
$(“#myElement”)
应该始终返回一个元素,因为ID应该是唯一的。类(
$(“.myElement”)
)可能是一个更现实的例子。不,这正是我的观点。既然只有一个ID,为什么还要将[0]与ID一起使用?也就是说,如果类似数组的对象的大小为1,那么使用[0]没有任何区别吗?@Aerovistae:因为
.hide()
是一种jQuery方法。本机DOM元素没有
.hide()
方法。
$('.test')[0]。hide()
不能像
那样工作。hide()
是一个jQuery方法,
[0]
给你一个本机DOM元素对象。
$('.test').get(0)
等同于
$('.test')[0]
。你需要
$('.test')。eq(0)
$('.test')[0]。hide()
不能像
那样工作。hide()
是一个jQuery方法,
[0]
给你一个本机DOM元素对象。
$('.test')。get(0)
相当于
$('.test')[0]
。您需要
$('.test').eq(0)
var example = $("#myElement");