私は自分自身でこれを考え出すことを試みましたが、アイデアはありません。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);
}
};
for(曲の中のオブジェクト)は、配列ではないオブジェクト(状態の下の答え)と一緒に使うべきで、for..inがJSでどうなるかについての良い説明です。http: //javascriptweblog.wordpress.com/2011/01/04/exploring-javascript-for-in-loops/ – scrappedcola