2016-04-15 11 views
0

jqueryを使用してjsonファイルを読み込もうとしていますが、最初のレベルを呼び出して返すことができますが、 "result"それはまた、ここにjqueryが未定義の状態でnested jsonを読み込む

は私のJSONです:ここでは

{ 
"count": 380, 
"fixtures": [ 
{ 
    "status": "FINISHED", 
    "homeTeamName": "Manchester United FC", 
    "awayTeamId": 73, 
    "matchday": 1, 
    "homeTeamId": 66, 
    "result": { 
    "goalsAwayTeam": 0, 
    "goalsHomeTeam": 1 
    }, 
    "date": "2015-08-08T11:45:00Z", 
    "soccerseasonId": 398, 
    "awayTeamName": "Tottenham Hotspur FC", 
    "id": 147075 
}, 
{ 
    "status": "FINISHED", 
    "homeTeamName": "Everton FC", 
    "awayTeamId": 346, 
    "matchday": 1, 
    "homeTeamId": 62, 
    "result": { 
    "goalsAwayTeam": 2, 
    "goalsHomeTeam": 2 
    }, 
    "date": "2015-08-08T14:00:00Z", 
    "soccerseasonId": 398, 
    "awayTeamName": "Watford FC", 
    "id": 147073 
} 

は私のHTMLとjQueryである:

<!DOCTYPE html> 
<html> 
<head> 
    <title> </title> 
    <style> 
th, td { 
border-bottom: 1px solid #ddd; 
} 
tr:nth-child(even){background-color: #f2f2f2} 

</style> 
</head> 
<body> 
     <table id="data"> 
      <tr> 
       <td>status</td> 
       <td>team 2</td> 
       <td>team 1 </td> 
       <td>score team 2</td> 
       <td>score team 1</td> 
      </tr> 


     </table> 

    <script  src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
    <script>/*global $*/ /*global result*/ 
    $.ajax({ 
     url: 'data.json', 
     dataType: 'json', 
     type: 'get', 
     cache: false, 
     success: function(data) { 
      $(data.fixtures).each(function(index, value) { 

       $("#data").append("<tr><td>"+value.status +"</td>"+" <td>"+value.homeTeamName+"</td>"+"<td>"+value.awayTeamName+"</td>"); 
       $.each(value, function(result , v) { 

      $("#data").append("<tr><td>"+v.goalsHomeTeam +"</td>"+"<td>"+v.goalsAwayTeam+"</td></tr>"); 
       }); 
      }); 


      } 


    }); 
    </script> 
</body> 
</html> 

、ここでは出力されます。

FINISHED Manchester United FC Tottenham Hotspur FC 
undefined undefined 
undefined undefined 
undefined undefined 
undefined undefined 
undefined undefined 
1 0 

私は十分に説明してくれれば助かります。

答えて

1

JQuery each

あなたは

+0

まだ未定義 –

+0

の同じリストを生成するセレクタでそれを持つよりも、

$.each(data.fixtures, function(index, value) { $("#data").append("<tr><td>"+value.status +"</td>"+" <td>"+value.homeTeamName+"</td>"+"<td>"+value.awayTeamName+"</td>"); $("#data").append("<tr><td></td><td>"+value.result.goalsHomeTeam +"</td>"+"<td>"+value.result.goalsAwayTeam+"</td></tr>"); }); 

ではなく、最初のパラメータとして配列を配置する必要がいけないように見えるの可能性がありますフィクスチャの結果が複数あるのでしょうか?そうでない場合は2番目のものは必要ありません。追加行を使って 'v'を' value.result'に置き換えることができます。 –

+0

ありがとう –

関連する問題