1

javascriptコードは、Internet Explorerではエラーを表示しますが、FFではエラーを表示しません。

$(document).ready(function(){




var countries = [
  ["Afghanistan","Af"],
  ["Åland Islands","Ax"],
  ["Zimbabwe","Zw"]
];

 var countryNames = countries.map(function(country){
  return {
    /*label: '<div class="flag '+country[1].toLowerCase()+'">'+country[0]+'</div>',*/
    value: country[0]
  }

  var my_var=countryNames();
}); 

});

IE 8開発者ツールで、jsをデバッグすると、エラーメッセージは次のようになります。「オブジェクトはこのプロパティまたはメソッドをサポートしていません」。そして、エラーは次の行で始まるスニペットに示されます:

var countryNames = countries.map(function(country){

IEでコードを機能させる方法は?

4

4 に答える 4

4

Array.prototype.map ()関数はInternet Explorer 9でのみサポートされているため、以前のバージョンのブラウザーではコードは機能しません。質問にjQueryのタグを付けたので、代わりにjQuery.map()関数を使用できます。

var countryNames = jQuery.map(countries, function(country) {
    return { 
        value: country[0]
    }
});

jsFiddle DEMOは、IE7モードでInternetExplorer9を使用してテストされました。

于 2012-09-19T09:13:59.647 に答える
1

代わりにJquery.each()を使用してくださいhttp://api.jquery.com/jQuery.each/

var countryNames = [];    
$.each(countries, function(index, value){
    countryNames.push(value[0]);
}
于 2012-09-19T09:05:36.350 に答える
0

すべてのバージョン(存在する場合)にArray.prototype.map

for ... inこれは、IEでサポートするために使用できるpolyfill / MonkeyPatchですが、このコードを含めると、配列で使用する場合に問題が発生する可能性があります。

Array.prototype.map

于 2012-09-19T09:06:09.520 に答える
0
  var my_var=countryNames();
}); 

する必要があります:

}); 
  var my_var=countryNames;

私のためにIE9で働いていました。

または、NeilKennedyが言ったように$.eachを使用できます。

于 2012-09-19T09:08:39.937 に答える