所以我有一个简单的html页面:
<h1>Start</h1>
<canvas class="myCanvas" width="400" height="400"></canvas>
<canvas class="myCanvas" width="400" height="400"></canvas>
在jquery我做,
> $(".myCanvas")
| [<canvas class="myCanvas" width="400" height="400">,
| <canvas class="myCanvas" width="400" height="400">]
然后,
> $(".myCanvas").first()
| [<canvas class="myCanvas" width="400" height="400">]
我认为我应该在第一个()方法的调用中得到一个元素,就像在
中一样> $(".myCanvas").get(0)
| <canvas class="myCanvas" width="400" height="400">
那么为什么第一个方法返回一个数组..?
答案 0 :(得分:6)
.first()
方法将结果集过滤到第一个元素并返回一个jQuery对象,而.get(0)
只返回第一个DOM元素。
jQuery对象显示为数组的原因是因为jQuery对象充当DOM元素的增强数组,并在其原型上使用了其他方法。出于这个原因,.get(0)
实际上与[0]
相同。
答案 1 :(得分:1)
我认为我应该在第一个()方法的调用中得到一个元素
不,first
确实返回一个jQuery集合(仅包含一个第一个元素,甚至根本没有元素),因此您可以在其上调用更多jQuery方法。请注意,它不会返回Array
,只会返回some special array-like object。
相反,get
会返回集合中的第一个DOM元素或undefined
。
答案 2 :(得分:0)
将匹配元素集合减少到集合中的第一个元素。