如果选中复选框,则需要删除行

时间:2013-12-04 15:09:50

标签: javascript jquery

我已经设置了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”,如果这有意义的话。

2 个答案:

答案 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();


});