如何从表中删除列中没有特定文本的所有行?
这不起作用:
$('#mytable').find('tr:not(:has(th))').filter(
function() {
return $(this).find('td').text() != $("#some_component").val();
}).remove();
}
更新
发布的答案对我不起作用。要么他们删除所有行(我需要检查特定行中的文本而不是第一行 - 或任何行)或者他们什么都不做。
以下是我的第一次尝试的修改
$('#mytable').find('tr:not(:has(th))').filter(
function() {
return ($(this).find('td').text().indexOf($("#some_component").val()) < 0);
}
).remove();
答案 0 :(得分:4)
HTML:
<table id="myTable">
<tr>
<td>Example One</td>
<td>Example Two</td>
<td>Example Three</td>
</tr>
<tr>
<td>Test One</td>
<td>Test Two</td>
<td>Test Three</td>
</tr>
<tr>
<td>Trial One</td>
<td>Trial Two</td>
<td>Trial Three</td>
</tr>
</table>
JavaScript jQuery(如果确实包含):
$(document).ready( function() {
$('#myTable td:contains("Test")').parents("tr").remove();
});
JavaScript jQuery(如果它不包含):
$(document).ready( function() {
$('#myTable td').not(':contains("Test")').parents("tr").remove();
});
JSFiddle:http://jsfiddle.net/22QKM/
答案 1 :(得分:0)
您可以使用以下代码执行此操作。
$("td:not(contains("+$("#some_component").val()+")"))
.siblings()
.filter(":not(contains("+$("#some_component").val()+"))")
.parent('tr')
.remove();
经过测试的代码
$('tr').filter(function()
{
return $(this).find('td:contains("'+ $("#some_component").val() +'")').parent().css('background-color','red');
});
测试它,然后将.css()
替换为.remove()
的 DEMO 强>
答案 2 :(得分:0)
出于兴趣,我发布的代码确实有用,据我所知。这是一个jsfiddle:
$(document).ready(function() {
$("#btn").click(function () {
console.log($("#some_component").val());
$('#mytable').find('tr:not(:has(th))').filter(
function() {
return $(this).find('td').text() != $("#some_component").val();
}).remove();
})
});
答案 3 :(得分:0)
删除表中没有特定文本字符串的所有行
function RemoveFromTable(tblID, VALUE){
$("#"+tblID).find(":not(:contains('"+VALUE+"'))").hide();
}
注意:您也可以使用“ remove()”方法代替“ hide()”方法”
按如下所示调用函数:
RemoveFromTable('table ID','value')