2012-05-08 3 views
4

Here's my demo.JavaScriptメソッドのarray.forEachはChromeで動作しますか?

JavaScriptのforEachメソッドをGoogle Chromeで動作させようとしています。
Caniuseはあまり役に立ちませんでした。 !:(

すべてのヘルプは感謝

+0

任意の特定の理由は、jQueryのを使用していませんか?パフォーマンス? –

+0

@EranMedan私のケースは小さく、私のページロードは速く、私はそのようにしたいと思います。 :) –

答えて

2

document.querySelectorAll配列が、何の方法「のforEach」を持っていないNodeListオブジェクトを返しませんいただければ幸いです

エラーMSGがあることを示しています。

これを説明する
Object #<NodeList> has no method 'forEach' 

チェックthis article

+0

うん、私はそれを見た。どういう意味ですか?代わりになるものは何ですか? –

+0

追加したリンクを確認してください。 – xdazz

11

アレイへのNodeListを変換します。

nodes = Array.prototype.slice.call(nodes); 

次に、.forEach()を使用できます。

+0

ホストオブジェクトをネイティブメソッドの* this *として使用できないブラウザでは機能しません。これらのブラウザはおそらくqSAをサポートしていない可能性があるため、どちらかといえば... – RobG

+0

これはどのブラウザでも問題がないですか? jQueryはこれを正確に行います。 – ThiefMaster

+0

**ホストオブジェクトをネイティブオブジェクトとして扱うことができない(そして、本当にあなたが最初にできると思う理由はありません)すべての**ユーザエージェント、IE 8以下が例です。 jQueryはホストオブジェクトに対してこのメ​​ソッドを使用せず、ネイティブ配列に対してのみ使用します。 IEユーザーの大部分はまだIE 8以下であることに注意してください。確かに – RobG

0

はいくつかの近代的なJavaScriptを使用してそれを変換:

let paragraphs = Array.from(nodes) 
paragraphs.forEach(paragraph => console.log(`This is the paragraph: ${paragraph}`); 
関連する問題