2017-06-13 5 views
1

ものです:jqueryの変数、私が行うとの違いは、B/W 2

var x = $("#listing") 

私は戻っID listingとhtml要素を取得し、

そして私は$(x)かを行います$($("#listing"))、私は同じことを得る。

違いは何ですか?

+3

'$(...)'は、オブジェクトを** jQueryオブジェクト/コレクション**に変換します。 '$(x)'を実行すると、すでにjQueryオブジェクト自体である 'x'から新しいjQueryオブジェクトを作成するだけです。しかし、 '$ var'と' var'の間には違いはありません。これはほとんどの開発者がjQueryオブジェクトとネイティブJSオブジェクト/変数を区別するための命名規則です。 – Terry

+0

JQueryは、あなたが彼に与えた要素に基づいてセレクタを再作成するだけです。 –

答えて

3

$()jQuery object(またはコレクション)に何かを変換しますx.addClass( '事')を実行することができます。これはJavascript変数と同じではありません。このようなvar x = '#listing'などの変数に#listingを格納する場合

、単に次にSizzle、jQueryのセレクタエンジンによって選択として解釈されるjQueryのコンストラクタに文字列を渡しています。最初のスニペットで

var x = $('#listing'); 

var x = '#listing', 
    $x = $(x); 

x第二に$xと同一である:提供される例において

は、次の二つの線の間の違いはありません。

完全性のために、jQueryコンストラクタは、最初のパラメータとして混合型変数を受け入れることもできます。それは文字列である必要はありません。たとえば、次の構文を使用してjQueryオブジェクトにDOMElement変数を変換することが可能です:今、jQueryの独自の機能へのアクセスを持っている

var ele = document.getElementById('myItem'), 
    $ele = $(ele); 

お知らせ$eleこと、などaddClass()、としてthis demoを参照してください。


さらに、jQueryオブジェクトをコンストラクタに渡すと、同じjQueryオブジェクトが返されます。例えば、次のスニペットを与え:

var $x = $('#listing'), 
    $x2 = $($x); 

$x$x2と同一です。

+0

ここで$(x)を置くと、$でラッパーのjquery要素を意味しますが、意味が分かりませんが、好奇心が強いのはどういうことでしょうか? – maverick

+0

@sahilコンソールそれを記録して、あなたが見えるものを確認してください。あなたが自分でそれをするときに、物事を理解することがより簡単になることがあります。 – Terry

+0

@sahilあなたは '$($ x)'を意味しますか? '$(x)'は、説明した '$( '#listing')'と同じものを生成します。 – BenM

0

あなたのx変数は、寮のアイテムを見つけたらjQueryオブジェクトになりました。

var x = $( '#listing');を実行すると、 xにはすべてのものがあります。

したがって、あなたは

+0

これは完全に真実ではありません。'x'変数はjQueryオブジェクトに*作られませんが、新しいものを作るために使われます。 – BenM

0

$を追加すると、通常の変数ではなくjQueryオブジェクトが作成されます。 DOM要素、別のjQueryオブジェクト、または通常のjavascript変数からjQueryオブジェクトを作成できます。 console.log(x)console.log($(x))を実行しようとすると、すべての相違点がわかります。

関連する問題