2012-12-08 7 views
8

私はjQueryが新しく、オブジェクトの配列表記を理解するのに少し不便です。 jQueryのドキュメントとthis articleを読むと、あなたがjQueryオブジェクト配列表記

$('.foo')[n]; 

正しいような何かを行うことによって、セレクタによって返されたオブジェクトのn番目の項目を参照できるようですか? jQueryの操作/エフェクト機能を一度に使用できますか?何か

$('.foo')[0].hide(); 

(これは私のために働いていない)のように、私も無駄に、試してみた:

var arr = $('.foo').get(); 
arr[0].hide(); 

は私の構文で何か問題はありますか?私がここでやろうとしていることをする最善の方法は何ですか?

ありがとうございます!

答えて

17

[0]の配列表記と.get() methodは、両方ともjQueryオブジェクト内のDOM要素への参照を返し、DOM要素に対してjQueryメソッドを使用することはできません。それは新しいjQueryオブジェクトを返しますので

、代わりにeq() methodをお試しください:DOM要素への参照を取得するために、配列表記または.get()を使用したことも

$('.foo').eq(0).hide(); 

注あなたははその後、直接得ることができることを意味しますDOMエレメントのプロパティにアクセスでき、例えば:

var firstElId = $('.foo')[0].id; 

... 2番目のノートと$('.foo')[0]がなることundefined$('.foo')[0].idは、'.foo'セレクタに一致する要素がない場合にエラーを返します。

+0

ありがとう:あなたは

var bar = $('.foo')[n]; var $bar = $(bar); $bar.hide(); 

それとも、jQueryのEQ()メソッドを使用します).hide(のようなメソッドを使用するようにjQueryオブジェクトに戻って、それを変換する必要があります!それはまさに私が知る必要があったものです。 –

6

jQueryオブジェクトを配列として参照すると、DOM要素が戻されます。

var bar = $('.foo').eq(n); 
bar.hide(); 
+0

最初の例はうまくいきますが、かなり重い方法です。 2番目の例のように '.eq()'を使うのがよいでしょう。 – saluce

関連する問題