jQuery缓存元素,$ variable和variable之间的区别?

时间:2012-03-16 10:13:08

标签: jquery caching variables

我想知道是否有人可以解释JQuery中缓存元素的差异。一个带有美元符号,一个带有美元符号。

以下是一个例子:

var cached = $('.someElement'); 

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

2 个答案:

答案 0 :(得分:15)

没有区别。两者都被缓存,只有变量的名称不同。

cached$cached都是有效的Javascript变量:

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

$ variable语法经常使用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();
// ...

答案 1 :(得分:4)

$前缀用于表示变量包含jQuery对象。在代码方面没有区别,你的例子中的两个元素现在都包含在每个变量中的jQuery对象中。

例如:

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