2011-08-26 18 views
1

私は自分自身でこれを考え出すことを試みましたが、アイデアはありません。for ..余分な時間では、IE8でのみ?

私は、ループを繰り返してリスト項目を作るだけのループを持っています。しかし、それは毎回EXTRAループを実行しているようで、未定義の要素を引っ張っているようです。例えば私の配列はアルバム[0]で停止しますが、それは先に進み、存在しないアルバム[1]に対してそれをしようとします。奇妙なことが起こります、具体的には、私のフィルタ関数からテキストを引っ張って終わりますか?

どうしてこれはクロムでは起こりませんか? 配列をループするときfor inを使用しないでくださいIE8 にhttp://dl.dropbox.com/u/1261672/groovyBox2222/guts/artists.html?Hackers-vs-Slackers&

getPlaylist(function(songs) // pulls out songs matching artist 
{ 

    var albums = new Array(); 
    for (obj in songs){ 
     if (songs[obj]["artist"] == artist){ 
      albums.push(songs[obj]["album"]); 
     } 

     albums = removeDuplicateElement(albums); 
    } 
    var albumname; 
    for (x in albums){ // creates LI of albums 
     albumname = '<li><a href="albums.html?'+escape(albums[x])+ 
      '&'+escape(artist)+'">'+albums[x]+"</a></li>"; 
     $('#albumlist').append(albumname); 
    } 
}; 
+0

for(曲の中のオブジェクト)は、配列ではないオブジェクト(状態の下の答え)と一緒に使うべきで、for..inがJSでどうなるかについての良い説明です。http: //javascriptweblog.wordpress.com/2011/01/04/exploring-javascript-for-in-loops/ – scrappedcola

答えて

3

を起こるところこれは予測不可能だ...です。これを代わりに使用してください:

+0

働いてくれて、ありがとう。 –

0

問題を引き起こしている「foreach」ループを使用しています。

関連する問題