2010-12-03 103 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() { });