【发布时间】: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