我正在看一个如何使用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方法。
答案 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() { });