Jquery - 使用条件作为文本框值删除行

时间:2016-08-22 13:42:49

标签: javascript jquery

我有一张桌子。第一列是文本框类型编号。其他列只是纯文本。

我想删除Textbox值与我在变量中得到的值匹配的行。

例如如果我在变量中有一个值为6,我想删除文本框值为6的行。

如何找到文本框类型为数字和行的行具有预定义的值,例如6&然后从表中删除该行。

我试过了: -

$('#tblField tr').eq(6).remove();

我的表: -

<table class="table table-bordered" id="tblFields">
<tboby>
<tr><td><input type="number" value="20" class="form-control" 

onkeypress="javascript:return isNumber (event)"></td>
<td>ANNUAL PF</td>
<td><input type="text" value="ANNUAL PF" class="displayname form-control"></td><td><input type="checkbox" checked=""></td>
<td style="display:none">ANPF</td>
<td style="display:none">1</td>
</tr>
.....
.....
</tbody>
</table>

请帮助。

2 个答案:

答案 0 :(得分:3)

使用 filter() 方法过滤掉tr并使用 remove() 方法删除已过滤的元素。

var val = 'your value';

//get all tr and filter
$('tr').filter(function(){
  // get all input tag inside and get element with variable value 
  return $('td input',this).filter(function(){ 
     return this.value == val; 
  }).length;
  // remove the filtered row
}).remove();

如果值是静态的并初始化为属性,那么您可以使用 attribute equals selector 以及 :has() 伪类选择器。

var val = 'your value';

// get tr contains input elemnt with certain value and remove
$('tr:has(td input[value="' + val + '"])').remove();

答案 1 :(得分:1)

请检查这个小提琴 - https://jsfiddle.net/nfvamrdx/

HTML:

<table>
<tr>
  <td>
    <input type ="number" class="txtId" value="3"/>
  </td>
  <td>
    <input type ="text" />
  </td>
  <td>
    <input type ="text" />
  </td>
</tr>
<tr>
  <td>
    <input type ="number" class="txtId" value="6"/>
  </td>
  <td>
    <input type ="text" />
  </td>
  <td>
    <input type ="text" />
  </td>
</tr>
<tr>
  <td>
    <input type ="number" class="txtId" value="7"/>
  </td>
  <td>
    <input type ="text" />
  </td>
  <td>
    <input type ="text" />
  </td>
</tr>
</table>

使用Javascript:

$(document).ready(function(){

$('#btnRemove').click(function(){

var valueToBeRemoved = $('#txtIdToRemove').val();
    $('.txtId[value='+valueToBeRemoved+']').parents('tr').remove();
});
});

$('#tblField tr input[type="number"][value=' + valueToBeRemoved + ']').parents('tr').remove();