(this) の前の $ ドル記号は、現在の要素を選択するのに役立ちます。オプションと thisSelect の前の $ について少し混乱しています。それらには特別な意味がありますか?
var $options = $(this).children('option');
var $thisSelect = $(this);
助けてくれてありがとう
(this) の前の $ ドル記号は、現在の要素を選択するのに役立ちます。オプションと thisSelect の前の $ について少し混乱しています。それらには特別な意味がありますか?
var $options = $(this).children('option');
var $thisSelect = $(this);
助けてくれてありがとう
誰もが言ったように、それは単なる慣例です。
変数の前の記号を使用して$
、この変数がオブジェクトを保持していることを識別します。
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 を使用するたびに、ソース コードから要素を取得する必要があります (これにより、パフォーマンスが大幅に低下する可能性があります! (特に、遅いコンピューターや古いコンピューターでブラウジングしている場合は!))。
これは、jQuery でラップされたオブジェクトへの一般的な参照です。どの変数が jQuery でラップされているかがわかると、コードが読みやすくなります。
//Item has been "cached" for later use in the script as a jQuery object.
var $item = $(this);
その他の一般的な方法:
変数がプライベートの場合、次のようにアンダースコアを使用します。
(function(){
var _foo = "bar";
})()
public の場合はアンダースコアを使用しません:
var foo = "bar"
jQuery セレクターの場合は、$を使用します。
var $foo = $('bar');
//then you can access it like this
$foo.attr('id')
これは単なるコーディング規則であり、コードの後半で変数の型をすばやく参照できます。
ドル記号は、変数に他の型ではなく jQuery オブジェクトが含まれていることを示すのに役立ちます。$ 記号を var の前に含めるかどうかは、純粋にコーダー次第です。これは単なるリマインダーとして機能します。
意味がありません。_
これらは、変数名に入れることができるor π
(ツールチェーンをマスターしないと安全ではありません)のような単純な通常の文字です。
有効な JavaScript 名に関する仕様はこちらを参照してください。そして特にこれ:
この標準では、特定の文字の追加が指定されています。ドル記号 ($) とアンダースコア (_) は、IdentifierName のどこでも使用できます。
この関連する回答にも興味があるかもしれません。
$
jQuery セットを含む変数のプレフィックスを付けるのが通常です。
これらの変数名の前の $ 記号は、変数名の他の文字と同じです。意味はありません。この規則を使用して、この変数に jQuery オブジェクトがあることを識別できます。
Some people used to addopt the convention to add $
in front of a var name to know that it's value is a jQuery object.
This way I know that the following vars have different results.
var $this = $(this);
var self = this;