9

私はjQueryを初めて使用しますが、オブジェクトの配列表記を理解するのに少し問題があります。jQueryのドキュメントとこの記事を読むと、セレクターから返されたオブジェクトのn番目のアイテムを次のように参照できるようです。

$('.foo')[n];

正しい?jQueryの操作/効果関数を組み合わせて使用​​できるようにする必要がありますか?のようなもの(これは私にとってはうまくいきません)

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

私も試しましたが、役に立ちませんでした:

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

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

ありがとう!

4

2 に答える 2

18

[0]配列表記と.get()メソッドはどちらもjQueryオブジェクト内のDOM要素への参照を返し、DOM要素でjQueryメソッドを使用することはできません。

新しいjQueryオブジェクトを返すため、代わりにこのeq()メソッドを試してください。

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

また、配列表記を使用したり.get()、DOM要素への参照を取得したりすると、DOM要素のプロパティに直接アクセスできるようになります。例

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

...セレクターに一致する要素がない場合にエラーが発生し、エラーが発生する2番目のメモが$('.foo')[0]ありundefinedます。$('.foo')[0].id'.foo'

于 2012-12-08T04:53:20.750 に答える
6

jQueryオブジェクトを配列として参照すると、DOM要素が返されます。.hide()などのメソッドを使用するには、jQueryオブジェクトに変換し直す必要があります。

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

$bar.hide();

または、jQueryのeq()メソッドを使用します。

var bar = $('.foo').eq(n);
bar.hide();
于 2012-12-08T04:54:55.273 に答える