Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.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/88.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 JQuery:按单个列搜索和筛选表_Javascript_Jquery_Sorting_Filter - Fatal编程技术网

Javascript JQuery:按单个列搜索和筛选表

Javascript JQuery:按单个列搜索和筛选表,javascript,jquery,sorting,filter,Javascript,Jquery,Sorting,Filter,我想通过单列中的值搜索表 该表如下所示: <table class="table main-content"> <thead> <td><b>Title</b></td> <td><b>Name</b></td> <td><b>State (D)</b></td> <td><b>Part

我想通过单列中的值搜索表

该表如下所示:

  <table class="table main-content">
<thead>
  <td><b>Title</b></td>
  <td><b>Name</b></td>
  <td><b>State (D)</b></td>
  <td><b>Party</b></td>
  <td><b>Room</b></td>
  <td><b>Phone #</b></td>
  <td><b>Special Role(s)</b></td>
</thead>
<tbody id="congress">

  <tr>
    <td>Senator</td>
    <td><a href="http://www.alexander.senate.gov/">Alexander, Lamar</a></td>
    <td>TN</td>        
    <td class="republican">Rep.</td>
    <td>455 Dirksen</td>
    <td>(202) 224-4944</td>
    <td></td>
  </tr>

  <tr>
    <td>Senator</td>
    <td><a href="http://www.barrasso.senate.gov">Barrasso, John</a></td>
    <td>WY</td>        
    <td class="republican">Rep.</td>
    <td>307 Dirksen</td>
    <td>(202) 224-6441</td>
    <td></td>
  </tr>
  ...
上面的代码搜索表中的所有列。如何将其调整为仅搜索特定列?(按索引)

目标是隐藏给定列中与查询不匹配的所有tr

function isFound(name, state)
{
   $("table tbody").find("tr").each (function(){
        var trElem = $(this);
        if (($(this).find("td:eq(1) a").text() == name) && ($(this).find("td:eq(2)").text() == state))
            return trElem;
    })
    return false;
}
用法:

  if (tr = isFound ('Firstname Lastname', 'State'))
      tr.remove();
或者,如果有多个元素,请使用循环删除

  while (tr = isFound ('Firstname Lastname', 'State'))
      tr.remove();

下面的示例将隐藏状态列(索引3)为TN的所有行。您可以根据需要进行调整:

$('td:nth-child(3)').each (function(){
    if( $(this).val() == 'TN' )
        $(this).parent().hide();
});
另一个简单的解决方案是使用,它有一个内置的搜索功能和。对你的项目来说,这可能有些过分,但还是要看看未来。

您可以重新发明轮子,但最好只使用DataTables,除非您明确需要这样做:

var$table=$('table');
//设置-向每个页脚单元格添加文本输入
$table.find('tfoot th')。过滤器(':eq(1),:eq(2)')。css('visibility','visible')。每个(函数(){
var title=$(this.text();
$(this.html(“”);
});
//数据表
var table=$table.DataTable({
长度变化:错误
});
//应用搜索
table.columns().every(函数()){
var col=这个;
$('input',this.footer()).on('keyup change',function()){
if(col.search()!==此.value)
col.search(this.value).draw();
});
});
表tfoot tr th{
可见性:隐藏;
}

标题
名称
国家(D)
聚会
房间
电话#
特殊角色
标题
名称
国家(D)
聚会
房间
电话#
特殊角色
参议员
总氮
代表。
455德克森
(202) 224-4944
参议员
WY
代表。
307德克森
(202) 224-6441
试试这个:

var text = $(this).find('td:eq(1),td:eq(2)').text().replace(/\s+/g, ' ').toLowerCase();

您希望函数返回什么?tr元素?欢迎来到StackOverflow!到目前为止你试过什么吗?StackOverflow不是一个免费的代码编写服务,它希望您能够这样做。请更新您的问题,以展示您已经尝试过的内容,并展示您在某个领域面临的具体问题。欲了解更多信息,请参阅,并访问网站:)@amenadiel目标是删除所有与查询不匹配的tr元素,留下那些与查询不匹配的tr元素,看起来像这样搜索整个表…我尝试只搜索一列。datatables可以做到这一点吗?@werdna3232是的,我更新了网站上提供的一个示例。如果要进行更多自定义,我建议您在尝试后查看文档或发布一个新问题。建议将代码段呈现为完整页面(自定义搜索位于表尾,在垂直挑战的桌面上可能看不到)。我发现有必要执行以下操作:if($(this)[0]。innerText=='TN')
var text = $(this).find('td:eq(1),td:eq(2)').text().replace(/\s+/g, ' ').toLowerCase();