2012-03-16 90 views
3

我想知道是否有人可以解釋JQuery中緩存元素的差異。一個有美元符號,一個沒有。

下面是一個例子:

var cached = $('.someElement'); 

var $cached = $('.someElement'); 

回答

15

沒有差別。兩者都被緩存,只有變量的名稱不同。

兩個cached$cached是有效的JavaScript變量:

var $message = 'Hello'; 
var message = 'Hello'; 

變量$語法往往只是使用to indicate the variable contains a jQuery object,而不是另一種類型(字符串,整數,DOM元素,...)。這是一種匈牙利符號,但這只是程序員之間的一種慣例。沒有JavaScript或jQuery的規定。

當人們談論緩存jQuery的變量,他們的意思是隻做一次查找

//Like this: cached: search is done once. 
var clientSpan = $('#client'); 
clientSpan.hide(); 
clientSpan.show(); 
// ... 

//Not like this: uncached 
$('#client').hide(); 
$('#client').show(); 
// ... 
+0

完美。我將來會使用這種技術。 – Crashdesk 2012-03-16 12:40:16

4

$前綴用於表示該變量包含一個jQuery對象。就代碼而言,沒有區別,您示例中的兩個元素現在都包含在每個變量內的jQuery對象中。

例如:

var myVariable = $("#myElement").text(); // string 
var $myVariable = $("#myElement"); // jQuery object 
相關問題