Jquery $() - 它返回什么,什么是$()[0]?
我正在看一个如何使用jqGrid的例子,它是一个jQuery插件。
它在一个ID为'list'的div中绘制一个网格。
它创建了网格$('#list').jqGrid(...)
。
但它使用$('#list')[0].addJSONData(...)
填充网格。
我一直在网上寻找关于jQuery的教程,试图了解它们之间的区别,而且我没有发现任何解决什么是 - 对我来说 - 使用它的最基本的问题。
$()
返回什么?它返回一个包含DOM元素的jquery对象吗?它返回一个包含DOM元素数组的jquery对象吗?它是否返回添加了附加jQuery函数的DOM元素?
那么什么是$()[0]
?如果$()
返回了一个包含DOM元素数组的jQuery对象,我期望它是带有id列表的div,但addJSONData
不是DOM方法,它是一个jqGrid方法。 jqGrid是否将该方法添加到数组中的所有DOM元素?
===== ADDED ======
如果$()返回一个包含DOM对象的arrray一个jquery对象,为什么$()[0]是指含有一个对象一个addJSONData方法? addJSONData不是一个DOM方法,它是一个jqGrid方法。
$()
根据选择器返回元素的集合。因此$('.help')
将返回所有具有.help
类的元素。 $('.help')[0]
会给你第一个元素。
jQuery对象与选择器一起使用时返回一个DOM元素数组。在这种情况下,$('#list')
表示与ID '#list'
匹配的项目的阵列(带有一个插槽,因为这是一个ID)。
$()
是一个jquery选择器,它需要的CSS表达并把它变成jQuery对象,$
实际上是的jQuery的简写,即jQuery()
和$()
是相同的。
$()[0]
只是简单地采用非jQuery对象,所以如果你做$('#someId')[0]
,这是一样的getElementById('someId');
$()返回一个包含匹配的元素的jQuery对象。通过$()[0]索引到jQuery对象返回第一个匹配的DOM对象。
var docWrappedInJQuery = $('document');
var bareDoc = $('document')[0];
assert((document === docWrappedInJQuery) === false);
assert((document === bareDoc) === true);
$()是jQuery() function的别名。它返回一个jQuery对象和与提供的选择器匹配的元素。如果找到匹配的元素,$()[0]会给你第一个DOM元素。
有关完整说明,请参阅jQuery documentation。
$()
与致电jQuery()
相同。文档是在这里:http://api.jquery.com/jQuery/
记住调用$(function() { })
是一个捷径调用$(document).ready(function() { });
有些应答者应该收拾答案空间。我们需要有6个答案,都说“$()返回一个jQuery对象”? – Stephen 2010-12-03 18:38:00
所有你需要知道的和更多:http://api.jquery.com/jQuery/ – Stephen 2010-12-03 18:39:24