1


私はJSONとjQueryに少し慣れていません。ここで私がやりたいのは、JSONからデータをフェッチし、それをhtmlテーブルに表示することです。問題は、htmlファイルのセクションに書き込むとdocument.write(ht);すべてheadが正常に機能することです。しかし、document.write(ht);このようにhtmlの本文に書き込むと、出力として表示undefinedされます。なぜそうなのかわかりません。

以下はtext.jsonファイルです。

   {
     "red":"new_small.gif",
     "green":"new_small.gif"
   }

以下はhtmlファイルです:

     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>Untitled Document</title>
      <script src="jquery-1.7.2.js"></script>
      <script  type="text/javascript">
        var items = [];
        var ht;
        $.getJSON('text.json', function(data) {
        ht='<table>';
        $.each(data, function(key, val) {
        ht+= '<tr><td>' + key + '</td><td><img src="' + val+ '"></td></tr>';
       });
        ht+='</table>';
      }).success(function() { alert("success"); })
        .error(function() { alert("error"); })
        .complete(function() { alert("complete"); });  
    </script>
    </head>
    <body>
    <script> 
    document.write(ht);  
    </script>
    </body>
    </html>
4

2 に答える 2

2

ht呼び出しでコールバック関数を介して非同期に設定されます$.getJSONが、document.write はすぐに起動されます。

于 2012-04-11T09:00:16.813 に答える
0

ht+='table>'; の後 これを使って

  $('div/>', {
    html:ht
  }).appendTo('本体');
于 2012-04-11T09:07:57.767 に答える