我已经设置了jQuery / AJAX解决方案来更新和删除表格中显示的项目。 AJAX部分工作正常,但一旦项目被删除,我需要能够从视图中删除它,我无法弄清楚如何在单击提交按钮后根据它们的值识别所选项目。
这是我的jQuery:
$('#button').click(function(event){
var order = $("#sortable tbody").sortable("serialize");
order += "&" + $("form[name=favorites]").serialize().replace(/%5B%5D/g, '[]');
order += "&crudtype=update_favorites";
$('#savemessage').html('<p>Saving changes...</p>');
$.post("/crud",order,function(theResponse){
$('#savemessage').html(theResponse);
});
});
});
我的HTML是从PHP生成的,因此数量和ID是可变的,但格式如下:
<tr class="odd" id="field_37">
<td class="handle"><a href="#">Item #1 Name</a></td>
<td><input type="checkbox" name="fid[]" id="fid" value="37" class="box check-child"></td>
</tr>
<tr class="even" id="field_29">
<td class="handle"><a href="#">Item #2 Name</a></td>
<td><input type="checkbox" name="fid[]" id="fid" value="29" class="box check-child"></td>
</tr>
有效地(我认为)我需要的是添加到我的.click函数中,例如“foreach checked fid,删除相应的行ID”,如果这有意义的话。
答案 0 :(得分:1)
获取已选中复选框的基本选择器是
'input[type="checkbox"]:checked'
或
'input:checkbox:checked'
现在你可以使用has()或循环使用最近来获取trs
$('input[type="checkbox"]:checked').closest("tr").remove();
或
$('tr:has(input[type="checkbox"]:checked)').remove();
答案 1 :(得分:0)
你可以这样做:http://jsfiddle.net/dSANw/
当用户点击复选框时,将类添加到父tr
$(".box").click(function() {
if($(this).is(':checked')) {
$(this).parents('tr').addClass('checkedtd');
} else {
$(this).parents('tr').removeClass('checkedtd');
}
});
当点击删除时,将所有表格tr分类为“checkedtd”并删除
$("#delt").click(function() {
alert($('.checkedtd').length);
$('.checkedtd').remove();
});