2017-02-14 5 views
1

のは、我々が持っているとしましょう:jQuery:jQueryオブジェクトが指定されたクラスセレクタを見つけられないとき、jQueryは何を返しますか?

var $letsTestA = $('.lets-test-a'), 
    $letsTestB = $('.lets-test-b'); 

HTMLですが:

<div class="lets-test-a"></div> 

我々は変数を呼び出そうと何が起こるか、今

を(私が知っている、私は.lets-test-bを残し) $letsTestB

私はちょうど盲目的に最初のいくつかの研究を行うことなく質問をしていないよ、いくつかのテストを行いましたが、私は...これが動作しているようですどのようにして少し混乱している

もし私alert($letsTestA);またはalert($letsTestB); JSFiddleからテストすると、同じ結果が得られます。ただ[object Object]ですか?

はここに私のテストバイオリンです:これにさらにhttps://jsfiddle.net/m6j03423/

、私は実際にここでやろうとしていることは、変数の内容が存在するかどうかを調べるための方法を作成することです。

PHPでは、私はちょうどif (empty($myVar)) { // do action }と書くでしょうが、JSは同じように動作しません。

JSでは、私はif ($letsTestA) { }と書くことができ、変数の結果を出力できるはずですか?しかし、私はまだ[object Object]を得ています。

私には何が欠けていますか?

jQueryオブジェクトの内容を印刷することはできますか?

変数にjQueryオブジェクトの真の値が含まれているかどうかをテストするにはどうすればよいですか?


EDIT: 確かに、私は長さをチェックするために言って、いくつかの異なる答えを見ましたが、私は私がやっているものにそれを接続することが十分に理解していませんでした。

+3

あなたはそれを印刷していない、あなたはそれを警告していません。それをコンソールに記録し、そこから行ってください。 –

+0

ただログに記録してコンソールをチェックする – sTx

+1

jQueryのセレクタ* always *はjQueryオブジェクトを返します。なぜエラーがないのでしょうか。また、jQueryが存在しない要素のメソッドを呼び出すことができるのはなぜですか。 jQueryオブジェクトには1つ以上の要素が含まれていることもありますが、何も見つからない場合は空になることもあります。これをチェックするには 'length'プロパティを使います。もしあなたがまだ持っていないのであれば、http://learn.jquery.com/ –

答えて

1

あなたは要素が存在するかどうかを確認するために、オブジェクトの.lengthプロパティを使用することができますか

if ($letsTestA.length > 0) { 
    //element exists 
} 

var $letsTestA = $('.lets-test-a'), 
 
    $letsTestB = $('.lets-test-b'); 
 

 
console.log($letsTestA.length); 
 
console.log($letsTestB.length);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="lets-test-a"></div>

+1

私はあなたの答えを受け入れるのに数分待つ必要があります。ありがとう!私はPHPから来ている、私はそれに何かがあるかどうかを確認するために長さを確認することは決してないだろう。 – mattroberts33

+0

'.length'がこれに使われていることを知ったので、私は周りを見回していました。明らかに'> 0'は必要ありませんが、 '=== true'を書くよりも速いでしょうか? – mattroberts33

+1

@ mattroberts33あなたは "JavaScript真理"を調べたいと思うでしょう。 –

関連する問題