Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从没有特定文本字符串的表中删除所有行_Javascript_Jquery_Html Table - Fatal编程技术网

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

Javascript 从没有特定文本字符串的表中删除所有行,javascript,jquery,html-table,Javascript,Jquery,Html Table,如何从表中删除列中没有特定文本的所有行? 这不起作用: $('#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() != $("#some_component").val();
     }).remove();
}  
更新

贴出的答案对我不起作用。要么删除所有行(我需要检查特定行中的文本,而不是第一行或任何一行),要么什么也不做。
以下是对我第一次尝试的修改,但效果良好

$('#mytable').find('tr:not(:has(th))').filter(
    function() { 

       return ($(this).find('td').text().indexOf($("#some_component").val()) < 0);
    } 
).remove(); 
$('#mytable').find('tr:not(:has(th))).filter(
函数(){
return($(this.find('td').text().indexOf($(“#某些#组件”).val())<0);
} 
).remove();
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(如果不包含):

jsidle:

HTML:

JavaScript jQuery(如果不包含):


jsiddle:

您可以使用下面的代码来实现这一点

$("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()


您可以使用以下代码执行此操作

$("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()


据我所知,出于兴趣,您发布的代码确实有效。下面是一个JSFIDLE:

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

    })
});

据我所知,出于兴趣,您发布的代码确实有效。下面是一个JSFIDLE:

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

    })
});

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

 function RemoveFromTable(tblID, VALUE){         
    $("#"+tblID).find(":not(:contains('"+VALUE+"'))").hide();
 }
RemoveFromTable('table ID','value')
注意:您也可以使用“remove()”方法而不是“hide()”方法“

按如下方式调用函数:

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

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

 function RemoveFromTable(tblID, VALUE){         
    $("#"+tblID).find(":not(:contains('"+VALUE+"'))").hide();
 }
RemoveFromTable('table ID','value')
注意:您也可以使用“remove()”方法而不是“hide()”方法“

按如下方式调用函数:

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

特定列或任何列?@JeevanJose:specific column(但此文本无论如何不应出现在任何其他列中)特定列或任何列?@JeevanJose:specific column(但此文本无论如何不应出现在任何其他列中)如果它不包含文本,我想删除它,但为什么您使用硬编码字符串
“Test”
?我的文本来自另一个组件。我如何将
$(“#一些#组件”).val()放入此
:包含
?将测试替换为类似
'+$(“#一些#组件”).val()的内容+'
如果表有多个列,则此代码不起作用。在我的情况下,它会删除所有行。如果它不包含文本,我希望删除所有行。但是为什么要使用硬编码字符串
“Test”
?我的文本来自另一个组件。如何放置
$(“#某个#u组件”).val()
在此
中:包含
?将测试替换为类似
'+$(“#某些#u组件”).val()的内容+'
如果表有多个列,则此代码不起作用。在我的情况下,此代码删除所有行。此代码不适用于超过1列。因为似乎如果在第一列中找不到文本,则删除该行。对于我来说,此代码删除所有行。此代码不适用于超过1列。因为似乎如果找不到文本在第一列中,它删除了该行。对我来说,该代码删除了所有行。到目前为止,所有答案都不适用于超过一列的表。@Jim很抱歉,现在没有测试就给您提供解决方案,请参见编辑我已粘贴测试过的代码,嗯。
#某些组件
是另一个表中
tr
的一部分,可能是因为您的代码没有指定一个表,这是它不起作用的原因?@Jim可能是…所以在
tr
选择器中添加
#mytable
。到目前为止,所有答案都不适用于超过1列的表。@Jim很抱歉,现在没有测试就给您提供解决方案,请参阅编辑我粘贴了测试过的代码,嗯。
#某些_组件
是另一个表中的
tr
的一部分,可能是因为您的代码没有指定一个表,这就是它不工作的原因?@Jim可能是……所以在
tr
选择器中添加
#mytable