将JSON数据添加到HTML元素

时间:2017-10-25 10:01:30

标签: javascript jquery json

我想动态地将JSON数据放入HTML元素中。我正在循环数据集,但它不会进入循环。请帮忙。

$.ajax({
  type: "POST",
  url: '<%= ResolveUrl("~/Menu.asmx/MasterMenu")%>',
  data: [],
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(response) {
    //var dataset = JSON.stringify(response.d);
    var dataset = response.d;
    alert(dataset);
    debugger;

    for (var i = 0; i < dataset.length; i++) {
      alert(dataset[i].MENU_NAME);
    }

    //  $.each(data, function (key, value{ <- this is wrong
    $.each(response.d, function(i, item) {
      alert("in");
      $("#menuDynamic").append("<li class='treeview'> <a href='#'> <i class='fa fa-dashboard'></i> <span>" + item.MENU_NAME + "</span> <span class='pull-right-container'><i class='fa fa-angle-left pull-right'></i> </span></a> </li>");
    });
  },
  error: function(response) {
    alert(response.responseText);
    alert(response.statusText);
  }
});

2 个答案:

答案 0 :(得分:0)

在您的成功fn中添加此行。可能是你的回答不是JSON。

response = $.parseJSON(response);              要么 response = JSON.parse(response);

答案 1 :(得分:0)

是解决了

$.ajax({

          type: "POST",
          url: '<%= ResolveUrl("~/Menu.asmx/MasterMenu")%>', 
          data: [],
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (response) {

             var data = JSON.parse((response.d));
              //var dataset = JSON.stringify(response.d);
              //var dataset =   $.parseJSON(response);

              debugger;


              $.each(data, function (i, item) {

                  $("#menuDynamic").append("<li class='treeview'> <a href='#'> <i class='fa fa-dashboard'></i> <span>" + item.MENU_NAME + "</span> <span class='pull-right-container'><i class='fa fa-angle-left pull-right'></i> </span></a> </li>");

              });
          }, error: function (response) {
              alert(response.responseText);
              alert(response.statusText);

          }

      });