我正在使用此代码播放预加载的mp3文件。
var shuffle = $("#shuffle")[0];
shuffle.play();
随机播放是我的身份。我从网上得到了代码,但我无法弄清楚jquery选择器之后的[0]是什么。如果我将其删除,声音就不会播放。它会做什么?
感谢
答案 0 :(得分:10)
jQuery是一个类似于数组的对象,它包含所有匹配的元素。通常,jQuery默认将其更改应用于集合中的第一个元素:
$("li").css("display"); // display val of first element, not all elements.
尽管可以找到很多li
个元素,但jQuery对象会隐式地告诉我们第一个元素。我们可以使用$.get
方法明确指示它这样做:
$("li").get(0); // Returns first DOM element
$("li")[0]; // Also returns first DOM element
我们可以查看nodeName
来验证这一点:
$("li").get(0).nodeName; // LI
$("li")[0].nodeName; // LI
如果我们了解一下,我们可以看到$.get()
的实施方式:
get: function(num) {
return num == null
? this.toArray()
: ( num < 0
? this[ this.length + num ]
: this[ num ] );
}
从中可以看出,当没有提供参数时,整个元素集合将转换为数组,然后返回。当提供参数时,例如2
,我们将元素作为索引2返回。如果提供-2
,则将其添加到长度中(假设长度为5,5 +( - 2))是3),结果数字用作索引。
关于你的特定例子:
var shuffle = $("#shuffle")[0];
shuffle.play();
jQuery用于获取id值为shuffle
的任何元素。这将返回类似jQuery数组的对象。但是你的play()
方法并不存在于jQuery对象上,它存在于#shuffle
对象上。因此,您需要获取集合中的第一个元素。
您可以使用$.get(0)
,但正如我们刚刚看到的那样,这只会增加一步。在内部,jQuery将执行您在上面执行的相同代码[0]
。
答案 1 :(得分:1)
在你的问题的直接上下文中,$("#shuffle")
是一个id的选择器,它返回一个jQuery
对象(不是一个数组本身,但它有一个类似数组的结构),那么[0]
部分实际上返回了一个标识为DOMElement
的元素的本地shuffle
对象,而不是通过调用jQuery
返回的$('#shuffle')
对象(没有{ {1}})。
与执行[]
这将允许您进行document.getElementById('shuffle')
调用以启动音频流。
答案 2 :(得分:0)
返回数组的第n个元素。与普通的javascript或php相同,也是支持数组的编程语言的一部分。
答案 3 :(得分:0)
JQuery返回一个数组。 [0]取数组中的第一项。
答案 4 :(得分:0)
$("#shuffle")
会根据您的查询返回一系列元素,例如[div,span,etc]
$("#shuffle")[n]
表示您正在选择此数组的第n个元素
在这种情况下,$("#shuffle")[0]
选择此数组的第一个元素
答案 5 :(得分:0)
$('#shuffle')后面的括号获得该选择器的第一个元素。
$('div.test')[0];
<div class="test"></div> <-- this one would get returned
<div class="test"></div>
<div class="test"></div>
答案 6 :(得分:0)
它返回包含匹配元素集中第一个元素的原生javascript对象。
答案 7 :(得分:0)
它意味着对象的时间顺序总是在数组[0],[1],[2]上使用......你可以检查Here