2011-08-08 8 views
12

要素を選択するとjQueryは常に配列を返します(少なくとも1つの要素が存在する場合はもちろんです)?例:jQueryは常に配列を返しますか?

$('#Myelement') 
$('div') 
$('tbody') 

セレクタがIDの場合はどうなりますか? セレクタが要素であるがオカレンスが1つしかない場合はどうなりますか?

答えて

12

jQuery関数は、セレクタに一致する要素がなくても、常にjQueryオブジェクト(配列に基づく)を返します。

このようにして、一致する要素がなくても、見つかった要素に影響すると思われるメソッドをいつでも呼び出すことができます。 jQueryオブジェクトに要素が含まれていない場合は、何もしません。

jQueryオブジェクトに要素が含まれているかどうかを知る必要がある場合は、lengthプロパティを使用できます。

+0

私の意見では、2番目のステートメントは良い説明ではありません。これはjQueryが配列を返す理由ではないためです。 $()は与えられたセレクタと一致する要素を見つけるので、あるidを持つ要素を期待することはできませんが、idを持つ要素を含む結果が得られるからです。 –

+0

@MatíasFidemraizer:2番目の段落は、メソッドが配列を返す理由を説明するものではありません。私は、あなたが提供する説明であなたが意味することを理解していないのではないかと心配しています。 – Guffa

+1

しかし、 '$( 'td')[0] .html( 'hi')'を実行すると、インデックスに '.html'メソッドがありません。 jQueryはjQueryオブジェクトの一部ではありません。私が間違っている? – dpp

1

$([selector])は、要素検索である$.find([selector])のショートカットに似ています。

このようなjQuery関数で実行されるものは、「結果を選択」ではなく検索するため、1つ以上の結果を返すことがあります。

関連する問題