[英]erase from list using JSON reply, using jQuery
我有此项目列表,并且在底部有一个按钮,用于根据其复选框删除其中的一些项目。 我还从jQuery get()得到了一个响应,其中包含代表新列表的元素。 因此,其余部分需要删除。 这是我的列表的构建方式:
<table style="float:left;width:100%">
<tbody>
<?php foreach ($items as $item): ?>
<tr>
<div>
<td ?>;
<input type="checkbox" name="item_<?php echo $item['NAME'];?>" value="<?php echo $item['ID'];?>" />
</td>
</div>
</tr>
<?php endforeach; ?>
</tbody>
我使用get()函数并在json中得到以下答复。
[{"ID":"2","EMAIL":"xxxxx@hotmail.com","DATETIME":"2011-12-12 03:20:01"},{"ID":"4","EMAIL":"xxxxx@gmail.com","DATETIME":"2011-10-09 01:15:22"}"]
我现在要做的就是简单地消除相应的错误,即在json回复中没有输入值(这是json的ID)。
有什么想法如何使用jQuery吗? 谢谢 !
有几种不同的方法可以做到这一点。 我有点喜欢遍历您的json响应,标记已确认的那些,删除未确认的那些,并删除已确认的标志。 例如
var json = [{'id':'2','email':... }];
// first, flag what we DO have
$.each(json,function(n,r){
var $i = $(':input[value="' + r.ID + '"]');
if ($i.length > 0){
$i.addClass('ajax-confirmed');
}
});
// delete what hasn't been flagged
$(':input:not(.ajax-confirmed)').each(function(m,r){
var $row = $(r).closest('tr');
$row.remove();
});
// then remove the flag (cleanup)
$(':input.ajax-confirmed').removeClass('ajax-confirmed');
小提琴在操作中显示它: http : //jsfiddle.net/v9paf/ (或者,如果您想删除它... http://jsfiddle.net/v9paf/1/ )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.