删除表行(如果未选中)

时间:2018-09-06 07:10:06

标签: javascript jquery

我正在使用一个表,每行包含一个复选框,而我提交时我希望禁用未选中的行,这就是我尝试过的方法,我创建了一个表和行,其中包含已检查的输入类型,如果未选中输入类型意味着我想要禁用该行,以便当我在mvc中检索时,我可以获得详细信息

<table id="subjectTable">
<tbody><tr><input type='checkbox' name='subjectcheck' /></tr></tbody>             
</table>
 $("input:not(:checked)").each(function () {
                        $(this).closest('tr').attr("disabled", "true");
                    });

这就是我尝试过的任何帮助

2 个答案:

答案 0 :(得分:1)

要删除未选中的tr的父tr,请尝试.parent().remove(),如下所示:

$("input:not(:checked)").each(function () {
  $(this).parent('tr').remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="subjectTable">
  <tbody>
    <tr>
      <input type='checkbox' name='subjectcheck'/>
    </tr>
  </tbody>             
</table>

答案 1 :(得分:1)

如果您只想删除<tr>,则可以使用jQuery方法.closest().remove()

  • 使用$('input:not(:checked)')

  • 选择输入
  • <tr>查找最接近的.closest('tr')

  • 使用.remove()

  • 删除它们

PS:请记住,<td>内必须有<tr>,否则<input>将被放置在<table>之外。

$('button').on('click', function(){
  $('input:not(:checked)').closest('tr').remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="subjectTable">
  <tbody>
    <tr><td><input type='checkbox' name='subjectcheck' /></td></tr>
  </tbody>
</table>
<button>Emulate submit !</button>