私はChrome拡張機能を作成していますが、JS/jQueryのみを使用して現在のドキュメント上の各IMGオブジェクトをループする最良の方法は何ですか?現在のドキュメントのすべてのIMGをループする
答えて
のjQuery:
$("img").each(function() {
console.log($(this).prop("src"));
});
は、すべての画像のsrc
コンソールでログに記録します。
lol @ '$(this).prop( 'src');'いいえ '' this.src' – Raynos
これは完璧です、ありがとう! –
Array.prototype.forEach.call(document.images, function(img) {
// ecmascript5 plz (but we accept a shim also)
});
+1これはChrome拡張機能のため、シムは必要ありません。私はまだ特定の使用法を知る必要があると思うが、 – RightSaidFred
Psh、 '[] .forEach'。また、大きな警告、 'document.images'はライブリストです。つまり、 'forEach'ループでリストを変更すると、ループは多かれ少なかれアイテムの反復を開始するか、一般には崩れ始めます。私は 'toArray(document.images).forEach(eachImage);をお勧めします。' – Raynos
@Raynos: '[]'アクセスは遅いです:pしかし、あなたは正しい古いHTMLCollectionの問題について正しいです。それは真剣にあなたが少なくとも知っておく必要があることです。 – jAndy
に依存します。ループで何をしたいですか? – RightSaidFred
こんにちは......... – RightSaidFred
今後の読者の皆様、何らかのコレクションを作成したい場合は、おそらく '.map()'が必要です。速度を望むなら、おそらく 'for'文やネイティブ' forEach() 'が必要です。 jQueryメソッドのみを実行する場合は、おそらくjQueryの暗黙的な反復が必要なので、各反復で新しいjQueryオブジェクトを作成する必要はありません。ループに何をしたいかによっては、他の可能性もあります。 – RightSaidFred