2012-12-11 27 views
1

我的代碼:每個迴路是不是在主流瀏覽器的工作,除了火狐

<script type="text/javascript"> 
for each (var movie in ['Endhiran The Robot','Shivaji The Boss','Anbulla Rajinikanth']) 
    document.writeln(movies + "<br/>"); 
</script> 

在Firefox中,我得到的輸出作爲

Endhiran The Robot 
Shivaji The Boss 
Anbulla Rajinikanth 

但在IE9Chrome Version 23.0.1271.95 mfor each不工作並沒有什麼寫在文件

+0

'爲each'應該只是'for' –

+0

順便說一句,該變種'movies'應該是'movie',對不對?你不應該使用'document.writeln' /'document.write'在所有 –

+0

@TimBüthe,謝謝。我將編輯並更改爲「電影」。一個疑問,我用'單獨for'而不是'爲each'但'output'我正在爲'0,1,2',而不是那些'電影names' – User1674987

回答

3

有在JavaScript中是for each,這是一個非標準擴展。

有新ES5 forEach function,這是很好的支持現代瀏覽器,儘管當然不是在舊的:

['Endhiran The Robot','Shivaji The Boss','Anbulla Rajinikanth'].forEach(function(movie) { 
    document.writeln(movie + "<br/>"); 
}); 

其他幾個選項中過這裏this other answer堆棧溢出。 (這個問題提到了jQuery,但得到的答覆涵蓋了普通的JavaScript和jQuery選項。)

+0

其實,'因爲each'實際上是一個標準的擴展。它是ECMA-357標準的一部分。 –

+0

@BorisZbarsky:有趣!但357 - 用於XML的ECMAScript - 不是[262](http://www.ecma-international.org/publications/standards/Ecma-262.htm)。 ;-) –

+0

當然。我沒有說它是ECMA-262的一部分。我只是說它是遵循一個公佈的擴展ECMA-262的標準。 ;) –

4

for each建設的擴展ECMAScript語言;它在E4X規範中沒有得到廣泛支持。

我認爲,只有Firefox支持它在HTML腳本縮影,它已被棄用:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Statements/for_each...in

遍歷數組,你可以使用普通for循環:

var movies = ['Endhiran The Robot', 'Shivaji The Boss', 'Anbulla Rajinikanth']; 
for (var i = 0; i < movies.length; ++i) { 
    document.writeln(movies[i] + "<br/>"); 
} 
+0

因此,'firefox'本身就是允許'爲每個'構造。 – User1674987

+0

@universal:我想是的,看到我編輯的答案。 –

相關問題