2010-12-03 200 views
3

我正在看一个如何使用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方法。

+1

有些应答者应该收拾答案空间。我们需要有6个答案,都说“$()返回一个jQuery对象”? – Stephen 2010-12-03 18:38:00

+0

所有你需要知道的和更多:http://api.jquery.com/jQuery/ – Stephen 2010-12-03 18:39:24

回答

3

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

0

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

4

$()是一个jquery选择器,它需要的CSS表达并把它变成jQuery对象,$实际上是的jQuery的简写,即jQuery()$()是相同的。

$()[0]只是简单地采用非jQuery对象,所以如果你做$('#someId')[0],这是一样的getElementById('someId');

0

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

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

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

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

0

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

记住调用$(function() { })是一个捷径调用$(document).ready(function() { });