Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
在jQuery表中搜索_Jquery_Html Table - Fatal编程技术网

在jQuery表中搜索

在jQuery表中搜索,jquery,html-table,Jquery,Html Table,我制作了一个脚本来查找表中的字符串。找到该行时,将显示该行,否则将隐藏该行。 它在Chrome上运行得很好,但在Firefox和InternetExplorer上有些落后。这个代码好还是更好 $("#searchValue").keyup(function() { var table = $(this).siblings('table').not(':hidden'); var name = $("#searchValue").val(); if (name === "") {

我制作了一个脚本来查找表中的字符串。找到该行时,将显示该行,否则将隐藏该行。 它在Chrome上运行得很好,但在Firefox和InternetExplorer上有些落后。这个代码好还是更好

$("#searchValue").keyup(function() {

  var table = $(this).siblings('table').not(':hidden');
  var name = $("#searchValue").val();
  if (name === "") {
    $(table).find('tr').show();
    $(table).trigger('update');
  }
  else {
    name = name.toLowerCase();
    var trs = $(table).find('tr').not(':first');
    trs.each(function() {
      var tr = $(this);
      var count = ($(tr).children('td').length);
      var suc = -1;
      for (var i = 0; i < count; i++) {
        var state = $(tr).children("td").eq(i).html();
        state = state.toLowerCase();
        if (state.match(name)) {
          suc = 1;
        }
        else if (suc !== 1) {
          suc = 0;
        }
      }
      if (suc === 1) {
        $(tr).show();
      }
      else {
        $(tr).hide();
      }
    });

    $(table).trigger('update');
  }
});
$(“#searchValue”).keyup(函数(){
var table=$(this).sibbines('table')。not('hidden');
变量名称=$(“#搜索值”).val();
如果(名称==“”){
$(table.find('tr').show();
$(表).trigger('update');
}
否则{
name=name.toLowerCase();
var trs=$(表).find('tr')。not(':first');
trs.each(函数(){
var tr=$(本);
变量计数=($(tr).children('td').length);
var-suc=-1;
对于(变量i=0;i
表:

  <table id='tableProject' class='tablesorter'>
    <thead>
        <tr>
            <th>Project ID</th>
            <th>Customer</th>
            <th>Description</th>
            <th>Status</th>
            <th>Max Hours</th>
            <th>Achieved</th>
            <th>Difference</th>
        </tr>
    </thead>
    <tbody>

    </tbody>
</table>

项目ID
顾客
描述
地位
最长工作时间
实现
差别
for循环中的
.eq()
可能是性能问题的潜在原因(不是积极的)。在每个
tr
中,您说的是“现在在DOM上迭代多次,并使用此索引查找
td

同样,在
中使用for循环。each()
是冗余的

在这种情况下,避免使用
.eq()
,只需使用:


你能提供一个表格样本吗?你可以使用DataTables吗?再多一些记录,这样我们就可以玩了
$(function () {
    $("#searchValue").keyup(function () {
        var table = $(this).siblings('table').not(':hidden'),
            name = $("#searchValue").val().toLowerCase();

        if (!name) {
            $(table).find('tr').show();
            $(table).trigger('update');
        } else {
            var trs = $(table).find('tbody tr');

            trs.each(function () {
                var tr = $(this),
                    results = null;

                results = tr.find('td').filter(function () {
                    return $(this).html().toLowerCase().match(name);
                });

                if (!results.length) {
                    tr.hide()
                } else {
                    tr.show();
                }
            });
            $(table).trigger('update');
        }
    });
});