2013-01-06 58 views
-4

可能重複:
What is the meaning of symbol $ in jQuery?
$ versus jQuery

我有點新的jQuery的,但也做了一些事情吧。但是我從來沒有使用jQuery()函數,並且很好奇它的目的是什麼。

這些是一樣的嗎?

jQuery("body") 

$("body") 
+2

其不一樣的問題 – user1721135

+2

我不太確定爲什麼這個已經關閉了,更別說差點被刪除了。有人甚至看過問題的第二部分嗎? (這是完全有效的堆棧溢出,AFAIK) – Matt

+0

@Matt問題的第二部分不在這裏,當我回答。它只會提出兩個問題而不是一個問題。 *現在*我有理由投票刪除。 –

回答

4

爲了解決你的答案的第二部分是唯一的答案:

jQuery.data()需要的元素作爲第一個參數,這指定您希望檢索或設置信息的元素。

.data()操作的jQuery對象上,並在內部調用jQuery.data(),傳遞包含jQuery對象作爲第一個參數[source]內的元件(一個或多個)。


TLDR:

jQuery.data(document.body, 'foo', 'bar') === $(document.body).data('foo', 'bar'); 
+2

你可以更好地說,在API文檔中以「jQuery」爲前綴的函數意味着你可以將它們作爲一個靜態函數(像'$ .data() /'jQuery.data()'或'$ .ajax()'/'jQuery.ajax()'),否則它是一個實例函數,你首先需要構造一個新的jQuery實例。 )'或'jQuery(...)')以使用這些函數。 –

8

$是jQuery的別名。你可以使用其中一個。

您可以在衝突

0

Basicly的情況下,停用與jQuery.noConflict();的$,它是一個別名。通常它用於避免與使用相同$的其他庫(例如原型)發生衝突。 $只是一個名字 - JavaScript中的名稱可以包含美元符號,並且可以只包含一個美元符號。

檢出this answerthis one

+0

聲明不太準確... jQUery是主要對象,'$'是可以衝突的別名 – charlietfl

+0

@charlietfl謝謝,編輯時感到困惑 – Kuf

+0

衝突通常用'noConflict()處理,所以概念仍然不是正在跟蹤 – charlietfl

8

從源代碼:

// Expose jQuery to the global object 
window.jQuery = window.$ = jQuery; 

所以,是的,這是相同的。但是你有兩次訪問,所以你可以避免衝突。

+0

除了該代碼不設置此別名。 –

+0

@LightnessRacesinOrbit:你是什麼意思? – Matt

+2

@Matt:它剛剛被編輯。一分鐘前,這是完全不同的代碼粘貼到這個答案:代碼與'$'和'jQuery'之間的別名沒有任何關係。 –

4

是的,他們都是一樣的,看here

在上面列出的第一個制定和jQuery() - 這也可以 寫成$()(...)

+1

+1閱讀源代碼的最佳資源是官方API – charlietfl

0

補充答案,.data和jQuery.data()函數是互補的,因爲其中一個(.data)是jQuery對象中的aplyed,也就是選擇操作的結果。例如:

$("#someId").data("foo"); 

而另一種是更一般的方法。它們都用於將任意數據關聯到DOM元素(並閱讀HTML5 data屬性)。看看該文檔描述:

jQuery.data()

.data()

4

這裏是jQuery forum一個很好的解釋。

$和jQuery都指向window.jQuery對象,所以它們是一個和 相同。某些腳本使用jQuery而不是$的原因是 防止與其他庫(如原型或不同版本的jquery)衝突,這兩個版本都使用$變量。

相關問題