Jquery $() - 它返回什么,什么是$()[0]?

时间:2010-12-03 18:24:06

标签: jquery

我正在看一个如何使用jqGrid的例子,这是一个jQuery插件。

它在ID为'list'的div中绘制网格。

使用$('#list').jqGrid(...)创建网格。

但它用$('#list')[0].addJSONData(...)填充网格。

我一直在网上寻找有关jQuery的教程,试图了解其中的差异,而且我发现没有任何东西可以解决使用它时最基本的问题。

$()返回什么?它是否返回包含DOM元素的jquery对象?它是否返回包含DOM元素数组的jquery对象?它是否返回添加了其他jQuery函数的DOM元素?

那么,$()[0]是什么?如果$()返回一个包含DOM元素数组的jQuery对象,我希望它是id为'list'的div,但addJSONData不是DOM方法,它是jqGrid方法。 jqGrid是否将该方法添加到数组中的所有DOM元素?

===== ADDED ======

如果$()返回包含DOM对象的arrray的jquery对象,为什么$()[0]引用包含addJSONData方法的对象? addJSONData不是DOM方法,它是一个jqGrid方法。

6 个答案:

答案 0 :(得分:4)

$()是一个jquery选择器,它接受css表达式并将其转换为jQuery对象,$实际上是jQuery的简写,即jQuery()$()是相同。

$()[0]只接受非jQuery对象,所以如果你$('#someId')[0],它与getElementById('someId');

相同

答案 1 :(得分:3)

$()根据选择器返回元素集合。因此$('.help')将返回所有具有.help类的元素。 $('.help')[0]会给你第一个元素。

答案 2 :(得分:2)

$()是jQuery() function的别名。它返回一个jQuery对象和与提供的选择器匹配的元素。如果找到匹配的元素,$()[0]将为您提供第一个DOM元素。

有关完整说明,请参阅jQuery documentation

答案 3 :(得分:0)

jQuery对象与选择器一起使用时,返回一个DOM元素数组。在这种情况下,$('#list')表示与ID '#list'匹配的项目的数组(具有一个插槽,因为这是ID)。

答案 4 :(得分:0)

$()返回一个包含一组匹配元素的jQuery对象。通过$()[0]索引到jQuery对象将返回第一个匹配的DOM对象。

var docWrappedInJQuery = $('document');
var bareDoc = $('document')[0];
assert((document === docWrappedInJQuery) === false);
assert((document === bareDoc) === true);

答案 5 :(得分:0)

$()与调用jQuery()相同。文档在这里:http://api.jquery.com/jQuery/

请注意,调用$(function() { })是调用$(document).ready(function() { });

的快捷方式