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();
 }

注:「hide()」メソッドの代わりに「remove()」メソッドを使用することもできます。

次のように関数を呼び出します。

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