0

如何从表中删除列中没有特定文本的所有行?
这不起作用:

$('#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(); 
4

4 回答 4

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/

于 2013-08-23T11:09:48.063 回答
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();

    })
});

http://jsfiddle.net/EaNEd/

于 2013-08-23T11:22:01.390 回答
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

于 2013-08-23T11:11:00.300 回答
0

从没有特定文本字符串的表中删除所有行:

 function RemoveFromTable(tblID, VALUE){         
    $("#"+tblID).find(":not(:contains('"+VALUE+"'))").hide();
 }

注意:您也可以使用“remove()”方法代替“hide()”方法”

调用函数如下:

RemoveFromTable('table ID','value')
于 2020-08-21T20:19:21.597 回答