(this)前面的$ dollar符号用于选择当前元素。我对选项和thisSelect前面的$有点困惑。他们有特殊意义吗?
var $options = $(this).children('option');
var $thisSelect = $(this);
感谢您的帮助
答案 0 :(得分:9)
正如大家所说,这只是一个惯例
我在变量前面使用$
符号来标识此变量包含一个对象。
var thisIsANumber = 1024; // No $.. Its a normal variable
var $divElement = $('div#idOfDiv'); // Yes! Its a jQuery Object
var $this = $(this); // Commonly used to reduce the work javascript has to do!
//Now I can use something like this.. (Notice how easy it is to read!)
$divElement.slideUp();
// Or a more `real world` example!
$('#element').click(function(){
// Hold $(this) inside a variable
// So we don't have to traverse the dom unnecessarily
var $this = $(this); // Save it (its a object.. so prepend a `$` )
$this.hide(); // Use it again
$this.fadeIn(); // and again
// ^ Has a dollar sign, because it is a jQuery Object.
});
你会看到很多插件都使用这个约定(好吧......至少写得很好) 通过将对象存储在变量中,Javascript不必每次都能遍历代码来获取元素。相反,我们已经有了元素(在变量中),所以我们用它来引用它。
如果您在同一个回调函数中使用$(this)
以上,则应将其存储在变量..(var $this = $(this);
)中。否则,每次使用它时,javascript都必须每次从源代码中获取元素(这会大大降低性能!(特别是对于在慢/旧计算机上浏览的人!)。
答案 1 :(得分:5)
这是jQuery包装对象的常见引用。它使得阅读代码更容易知道哪些变量是jQuery包装的。
//Item has been "cached" for later use in the script as a jQuery object.
var $item = $(this);
其他常见做法:
如果变量是私有的,那么使用这样的下划线:
(function(){
var _foo = "bar";
})()
如果它是公开的,我们不使用下划线:
var foo = "bar"
如果它是jQuery选择器,我们使用 $ :
var $foo = $('bar');
//then you can access it like this
$foo.attr('id')
这只是一个编码约定,它允许您在代码中快速引用变量的类型。
答案 2 :(得分:2)
美元符号可以帮助指示您的变量何时包含jQuery对象而不是任何其他类型。如果他们想要在var之前包含$符号,那么它纯粹取决于编码器,它只是作为提醒。
答案 3 :(得分:2)
没有任何意义。这些只是普通字符,就像_
或π
(如果你不掌握工具链那么这个不安全)你可以放在你的变量名中。
见here the specification regarding valid javascript name。尤其是:
本标准规定了特定的字符添加:美元符号 ($)和下划线(_)允许在任何地方 IdentifierName。
您可能也会对this related answer感兴趣。
通常用$
变量前缀包含jQuery集。
答案 4 :(得分:1)
$ sign就像变量名中的其他字符一样。它没有任何意义。您可以使用此约定来标识此变量中包含jQuery对象。
答案 5 :(得分:1)
有些人习惯于添加约定来在var名称前面添加$
,以便知道它的值是一个jQuery对象。
这样我知道以下变量有不同的结果。
var $this = $(this);
var self = this;