javascript - 如何让 JSON 数据显示在 HTML div 中?

标签 javascript jquery html json

尝试让此 json 数据显示在 HTML div 中

[{
  "botten": ["Krispig", "tunn"]
},
]  

HTML 文档中的 div 具有类名 box1_data。这是我的脚本:

var bottenInfo = document.getElementsByClassName("box1_data");

$.getJSON('choosepizza.json', function(choosePizzaData) {
  choosePizza(choosePizzaData);

  function choosePizza(choosePizzaData) {
    var request = new XMLHttpRequest();
    request.open('GET', 'choosepizza.json');
    request.onload = function() {
      var data = JSON.parse(request.responseText);
      renderHTML(data);
    };
    request.send();

    function renderHTML(bottenData) {
      var text = "";
      for (var i = 0; i < bottenData.length; i++) {
        text += '<p>' + bottenData[i].botten + '<p>';
      }
      bottenInfo.innerHTML = text;
    }
  });

我做错了什么?

krispigtunn 应该显示在 .box1_data div 中。

最佳答案

对于普通 JS 和 jQuery 之间的区别以及 AJAX 的工作原理,您的代码似乎相当困惑。您当前使用不同的逻辑两次发出相同的请求,解析已解析的对象,未正确访问结果对象,并尝试将节点集合作为单个元素进行访问。

要解决此问题,您只需循环遍历结果,该结果将自动反序列化为对象,并生成要放置在所需元素中的 HTML:

$.getJSON('choosepizza.json', function(choosePizzaData) {
  var html = choosePizzaData[0].botten.map(function(botten) {
    return '<p>' + botten + '</p>';
  });
  $(".box1_data").html(html);
});

这是一个没有 AJAX 的工作示例,显然在 SO 上不起作用:

// the response from the request:
var choosePizzaData = [{
  "botten": ["Krispig", "tunn"]
}]

// within the AJAX callback
var html = choosePizzaData[0].botten.map(function(botten) {
  return '<p>' + botten + '</p>';
});
$(".box1_data").html(html);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="box1_data"></div>

关于javascript - 如何让 JSON 数据显示在 HTML div 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53852507/

相关文章:

javascript - 网站打开时开始播放 YouTube 视频

javascript - 在 00 :00 format 中制作一个实时时钟

javascript - 通过滚动移动文本

jquery - 在 for 循环中循环数组时取消选中复选框

jquery - Bootstrap 3折叠菜单不折叠

Javascript window.close() 和 window.stop() 逻辑还是技术?

javascript - HighCharts x轴和y轴标签居中对齐

jQuery 绑定(bind)事件触发事件

html - 溢出 :hidden and overflow-y: scroll on ul not working;

jquery - 如何测量没有高度的div的高度