2011-12-12 5 views
1

私はChrome拡張機能を作成していますが、JS/jQueryのみを使用して現在のドキュメント上の各IMGオブジェクトをループする最良の方法は何ですか?現在のドキュメントのすべてのIMGをループする

+1

に依存します。ループで何をしたいですか? – RightSaidFred

+0

こんにちは......... – RightSaidFred

+0

今後の読者の皆様、何らかのコレクションを作成したい場合は、おそらく '.map()'が必要です。速度を望むなら、おそらく 'for'文やネイティブ' forEach() 'が必要です。 jQueryメソッドのみを実行する場合は、おそらくjQueryの暗黙的な反復が必要なので、各反復で新しいjQueryオブジェクトを作成する必要はありません。ループに何をしたいかによっては、他の可能性もあります。 – RightSaidFred

答えて

5

のjQuery:

$("img").each(function() { 
    console.log($(this).prop("src")); 
}); 

は、すべての画像のsrcコンソールでログに記録します。

+2

lol @ '$(this).prop( 'src');'いいえ '' this.src' – Raynos

+0

これは完璧です、ありがとう! –

10
Array.prototype.forEach.call(document.images, function(img) { 
    // ecmascript5 plz (but we accept a shim also) 
}); 
+0

+1これはChrome拡張機能のため、シムは必要ありません。私はまだ特定の使用法を知る必要があると思うが、 – RightSaidFred

+0

Psh、 '[] .forEach'。また、大きな警告、 'document.images'はライブリストです。つまり、 'forEach'ループでリストを変更すると、ループは多かれ少なかれアイテムの反復を開始するか、一般には崩れ始めます。私は 'toArray(document.images).forEach(eachImage);をお勧めします。' – Raynos

+0

@Raynos: '[]'アクセスは遅いです:pしかし、あなたは正しい古いHTMLCollectionの問題について正しいです。それは真剣にあなたが少なくとも知っておく必要があることです。 – jAndy