我是JQuery的初學者。
何時應該使用$之後的點?
$.trim(str)
而不是$trim(str)
?
還有一些沒有點的情況:$(document).ready
,但不是$.(document).ready
?
謝謝。
我是JQuery的初學者。
何時應該使用$之後的點?
$.trim(str)
而不是$trim(str)
?
還有一些沒有點的情況:$(document).ready
,但不是$.(document).ready
?
謝謝。
我不相信你有選擇,只有一種語法是正確的,並且會實際工作。該$
符號只不過是一個速記符號多爲jQuery
功能,所以當你寫:
$('some selector')
要調用一個函數,稱爲jQuery
,並傳遞一個字符串,或在你的情況,你傳入document
對象。
當涉及到調用一個方法時,如修剪等輔助方法,您將需要使用以下語法,即jQuery.trim()
或$.trim()
。這很容易檢查自己,就嘗試了這一點:
typeof($.trim) //returns "function"
typeof($trim) //returns "undefined"
...和['typeof'](https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/typeof_Operator)運算符不需要括號,也不需要點。 ;-) – 2010-08-01 23:29:16
當您正在訪問的jQuery的靜態方法不可用在比如說,一個DOM元素的原型。 trim
是API公開的靜態方法。
沒有$.fn.trim
,我們不能可靠地依靠String.prototype.trim
,因爲方法可能不同。
關於$trim
沒有定義。 trim
是jQuery的$
的一種方法。你可以做$['trim']
或$.trim
,這應該是訪問它的唯一方法。
在jQuery中,$
是一個變量名,如foo
或bar
,它引用全局jQuery對象。如果你想訪問jQuery對象的屬性,那麼你使用點。這些都是基本相同:
$.property
jQuery.property
(由於$
就像任何其他的變量,它可以讓你將它設置爲你喜歡的任何東西,如果你是包括包括後Prototype庫可能發生這種情況。 jQuery庫,它會讓您的$
指向document.getElementById
函數的別名。)
jQuery對象恰好也是一個功能,這樣你就可以調用該函數一樣的,你會調用任何其它功能:
$(arguments)
alert("arguments!")
在另一方面,$trim
只是另一個全局變量,像$
或location
,這可能是一個功能你自己定義:
var $trim = function(arguments) {
return "foo";
};
$trim(str)
+1最好的答案 – CodyBugstein 2014-07-16 14:13:46
的$.foo
語法意味着$
被視爲與一個對象字段foo
,這通常是您要調用的函數。所以這與一個名爲foo
的獨立函數沒什麼區別 - 它只是以$.
爲前綴,以區別於其他函數並將其與jQuery庫相關聯。
當你使用$(something).foo
時,你將something
傳遞給jQuery函數,並且結果取決於你傳遞的是什麼(可能是一個選擇器來查找一個現有的對象,或者它可能是一小段HTML構建一個新的對象,或者它可能是一個被註冊爲在頁面加載時運行的函數)。無論如何,例如,如果您傳遞的選擇器標識了一個類,則可以在返回的對象上調用foo
,該對象可能會應用於多個DOM對象。
當jQuery函數對除DOM對象(HTML頁面的一部分)以外的東西進行操作時,將使用第一種語法。例如,一個字符串($.trim
)或一個數組($.each
)。這些不是頁面的元素,它們只是JavaScript中的純數據。
在DOM元素上操作時使用第二種語法 - 您使用$(something)
來創建jQuery對象,該對象是圍繞零個或多個DOM元素的包裝器。然後你在返回的包裝器上調用函數來方便地操作它所包裝的對象。
簡而言之:美元符號通常會立即跟隨圓括號或點和方法名稱。當然,您應該嘗試學習JavaScript語言,以便了解所有的圓點和圓括號的真正含義:) – Martin 2010-08-01 22:18:03