我想知道是否有人可以解释JQuery中缓存元素的差异。一个带有美元符号,一个带有美元符号。
以下是一个例子:
var cached = $('.someElement');
var $cached = $('.someElement');
答案 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