【问题标题】:How can delete some elements from a JSON data returned from the server side?如何从服务器端返回的 JSON 数据中删除一些元素?
【发布时间】:2015-03-21 01:48:48
【问题描述】:

我有一个来自服务器端的 json 数据,我已经使用 jQuery 将它迭代到一个表中。 现在我想从原始JSON结果中删除一些元素或ID(基于表格的复选框选择)并将新的JSON数据与表格绑定。

我的ajax函数:

$.ajax({
        type: "POST",
        contentType: 'application/json;charset=utf-8',
        dataType:'json',
          url : methodURL,
          data : JSON.stringify(val),
          success : function(data) {
              //alert("success");


              if(data!=''){
                  $('#load_image').hide();
                  $("#selectitem").show();
                  $("#button_grp").show();


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

                       tr = $('<tr/>');
                       tr.append($("<td />").html('<input type="checkbox" name="selector[]" value='+item[1]+'>'));


                       tr.append("<td>" + item[1] + "</td>");
                       tr.append("<td>" + item[2] + "</td>");
                       tr.append("<td>" + item[3] + "</td>");
                       tr.append("<td>" + item[4] + "</td>");
                       tr.append("<td>" + item[5] + "</td>");


                       tr.append($("<td/>").html('<input type="textbox" name="quantity" id="quantity"/>'));

                       $('#ttp').append(tr);
                    });
       }
$('#result').text(data);
          }
      });


<table id="ttp"></table>

【问题讨论】:

  • 您对数据层有任何控制权吗?您不应该从 JSON 结果中删除任何内容,理想情况下您希望根本不返回它们 - 也许通过 AJAX 调用的 data: {} 属性传递一些过滤条件?
  • 首先我想在我从表中选择一些行之后将整个结果绑定到一个表中,我在我的代码中使用的复选框只需要绑定我没有选择的结果。 @PaulAldred-Bann
  • 哦,我明白了,所以您正在创建主系列的子集。您仍然真的不想以这种方式实际删除这些元素 - 也许对您正在创建的 DOM 元素引入某种过滤,我建议查看数据绑定框架 - 类似于 knockoutjs.com 或 @ 987654322@
  • 我不能用纯 jquery 来做这个过滤机制吗?或者还有其他使用jquery的方法吗? @PaulAldred-Bann
  • 您可以...但是您的代码可能会变得像意大利面条一样,因为您必须执行if ... then create DOM element else move to next object end if 之类的操作,其中框架将为您处理所有这些样板文件 -除了让您为将来的此类事情做好准备。

标签: jquery json ajax html-table


【解决方案1】:

使用其中一种:

 delete data.property;
 delete myJSONObject['property'];

 var property = "property";
 delete data[property];

stackoverflow blog post about delete@kangax

【讨论】:

    猜你喜欢
    • 2021-08-03
    • 1970-01-01
    • 2018-05-24
    • 2019-09-24
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2018-11-06
    • 2017-12-07
    相关资源
    最近更新 更多