2012-04-18 17 views
40

我知道這是一個愚蠢的問題,但我有點困惑與此。例如,如果我有一個ID爲rad1的輸入,下面幾行代碼是否有區別?

var $a = $('#rad1') 

var a = $('#rad1') 
+2

可能的重複[爲什麼JavaScript變量以美元符號開頭?](http://stackoverflow.com/questions/205853/why-would-a-javascript-variable-start -with-A -dollar-sign) – 2015-07-27 11:46:25

回答

56

不,沒有真正的區別。

這只是一個約定,可以幫助您記住a不是DOM元素,但它是一個jQuery對象。

var a = document.getElementById('a'); 
a.innerHTML //fine 

var $a = $('#a'); 
$a.html() // fine 

噢噢噢,順便說一句,既不a$a都不錯變量名...你應該使用有意義的變量名不ABC字符。


閱讀這同一個站點jQuery info tag

變量命名約定

jQuery的包裹變量通常命名以「$」,從標準的JavaScript對象區別開來。

var $this = $(this); 
+3

我來自java背景..這個答案真的開明瞭我的一天。我只是知道,在JS中我可以使用$在var名.. – swdev 2013-10-02 04:23:49

+5

有趣的是,你可以[在Java中使用$變量作爲井(http://stackoverflow.com/questions/7484210/what-is-the-meaning-of-in-a-variable-name)。 – zb226 2015-08-04 14:31:12

3

這只是爲表明這是一個jQuery變量。

聲明$a你顯示你的變量是用於JQuery對象的,它只是一個表示法。所以,最可讀的東西將會與$符號

var $obj=$("#obj"); 

和DOM元素來聲明Jquery的變量沒有$符號

var obj = document.getElementById("obj"); 
1

有沒有區別。這只是一個編碼約定,用於幫助識別變量代表jquery包裝對象。

0

的組合物也能正常工作:

你也可以做這樣的事情,以顯示<div>

function getCompTable(divId){ 
    var $d = $('#' + divId); 
    $d.show(); 
} 

用法

getCompTable('compListDiv'); // compListDiv - is a div id="" 

Yosi利

0

我覺得這種情況應該說明的記憶(關當然,分配 '$')jQuery和簡單的JavaScript變量的原因:

<form id='myform' > 
    <input id="name" type="text" value="Peter" /> 
</form> 

<script> 

$(document).ready(function(){ 
     var name = document.getElementById('name'); 
    var $name = $('#name'); 

    console.log(name.value); // javascript's properties are available 
     console.log($name.value); //it is undefined (worth of notice) 

    console.log(name.val()); // error! name.val is not a function ! (jquery function will not be available) 
    console.log($name.val()); // jquery functions are available 

}); 

</script> 
-1

當設置var d = $('<div>');我沒有發現d.addClass('someclass');$(d).addClass('someclass');之間的區別

+0

沒有答案。建議我們刪除。 – 2017-12-07 12:03:18

+0

不僅我使用原始問題中提供的類似代碼,我也以我自己的發現作出迴應:我沒有發現有什麼區別。 – luenib 2017-12-21 02:46:35

相關問題