1


我对 JSON 和 jQuery 有点陌生。在这里,我想做的是从 JSON 中获取数据并将其显示在 html 表中。问题是当我写入document.write(ht);htmlhead文件的部分时,一切正常。但是当我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('body');
于 2012-04-11T09:07:57.767 回答