2011-01-12 16 views
0

私は私のミスであるかを理解しよう、と私はそれを見つけることができません。これは私のコードですJSON jQueryのIE8は問題

のjavascript:

$(document).ready(function(){ 
     $.getJSON('ajax/data.json', function(data) { 
      $.each(data.results, function(i,item){ 
        alert(item.foo); 
       }); 
     }); 
    }); 

とdata.jsonファイル:

{ 
    "results":[ 
     { 
      "foo": "The quick brown fox jumps over the lazy dog.", 
      "bar": "ABCDEFG", 
      "baz": [52, 97] 
     }, 
     { 
      "foo": "The quick brown fox jumps over the lazy dog.", 
      "bar": "ABCDEFG", 
      "baz": [52, 97] 
     }, 
    ] 
} 

IE7、FFでは正常に動作しますが、IE8では正常に動作しません。

ここで何が問題なのですか?

PS:ありがとう1.4.3 jQueryのバージョン

を使用して!

}, 

これはIEを除くすべてのブラウザで耐え、違法JSONです:

+0

IE8ではどうなりますか? – polarblau

答えて

3

は無効なJSON、末尾のカンマを持っています。

+0

オハイオ州、右おい、私はそれを逃すことができた、すみません、すみません、ありがとう!! – AlexC

1

問題は、デバッグにアラートjavascript関数を使用していることです。これはブロッキング呼び出しです。それはjavascriptの動作を変更します。デバッグ目的のために、jQueryを使用して項目をulに追加するか、firebugを使用してデバッグします。

$(document).ready(function(){ 
    $.getJSON('ajax/data.json', function(data) { 
     $.each(data.results, function(i,item){ 
       $('<li>').text(item.foo).appendTo('#results'); 
      }); 
    }); 
}); 

<body> 
<ul id="results"> 
</ul> 
</body> 

このアプローチを使用すると、FFとIE8でうまくいきました。

+0

オリジナルのJSONデータファイルでも動作しました。 – tawman