5

(this) の前の $ ドル記号は、現在の要素を選択するのに役立ちます。オプションと thisSelect の前の $ について少し混乱しています。それらには特別な意味がありますか?

var $options = $(this).children('option');
var $thisSelect = $(this);

助けてくれてありがとう

4

6 に答える 6

13

誰もが言ったように、それは単なる慣例です。
変数の前の記号を使用して$、この変数がオブジェクトを保持していることを識別します。

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 を使用するたびに、ソース コードから要素を取得する必要があります (これにより、パフォーマンスが大幅に低下する可能性があります! (特に、遅いコンピューターや古いコンピューターでブラウジングしている場合は!))。

于 2013-01-16T16:30:02.737 に答える
8

これは、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')

これは単なるコーディング規則であり、コードの後半で変数の型をすばやく参照できます。

于 2013-01-16T16:23:42.707 に答える
2

ドル記号は、変数に他の型ではなく jQuery オブジェクトが含まれていることを示すのに役立ちます。$ 記号を var の前に含めるかどうかは、純粋にコーダー次第です。これは単なるリマインダーとして機能します。

于 2013-01-16T16:23:27.323 に答える
2

意味がありません。_これらは、変数名に入れることができるor π(ツールチェーンをマスターしないと安全ではありません)のような単純な通常の文字です。

有効な JavaScript 名に関する仕様はこちらを参照してください。そして特にこれ:

この標準では、特定の文字の追加が指定されています。ドル記号 ($) とアンダースコア (_) は、IdentifierName のどこでも使用できます。

この関連する回答にも興味があるかもしれません。

$jQuery セットを含む変数のプレフィックスを付けるのが通常です。

于 2013-01-16T16:23:30.800 に答える
1

これらの変数名の前の $ 記号は、変数名の他の文字と同じです。意味はありません。この規則を使用して、この変数に jQuery オブジェクトがあることを識別できます。

于 2013-01-16T16:24:46.870 に答える
1

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;
于 2013-01-16T16:25:31.927 に答える