1

JQuery の選択を変数に格納するとどうなるのだろうと思っていました。以下の例を試しました。

var images = $('div').find('img');
alert($(images[0]).attr('src'));

これは機能します。ただし、$(images[0]) の代わりに images[0] を使用すると、コードは機能しません。私が結論付けたのは、上記のコードは div img 要素の DOM 要素を含む配列を作成したということです。何か不足していますか?

ありがとうございました

4

3 に答える 3

1

jQuery を使用してオブジェクトを検索すると、常に配列が返されます。要素が見つからない場合は、空の配列が返されます。配列内の各要素は、HTML ページ内の生の DOM オブジェクトを表します。

jQuery イベントは、jQuery 配列に対してのみ呼び出すことができ、要素に対して直接呼び出すことはできません。DOM 要素は HTML オブジェクト型であり、jQuery 関数を含みません。DOM 要素で attr のような jQuery 関数を呼び出すには、$(object) を呼び出して jQuery オブジェクトに変換する必要があります。

お役に立てれば

于 2013-06-03T13:10:07.840 に答える
1

まず第一に、それを行う必要はありません。代わりに単純に実行してください。images.attr("src")ほとんど同じ$(images[0]).attr('src')です (さらに高速です)。

第二に、jQuery は配列のようなオブジェクトで見つかった要素のコレクションを格納します。これが機能しない理由です。
を使用images[0]すると、jQuery ではなく DOM オブジェクトを直接扱うことになるため、場合によってはもっと苦痛になることがあります。

于 2013-06-03T13:10:31.957 に答える