0

我正在尝试根据列值过滤 html 表(垂直类似于 MS Excel 过滤器)。我认为下面的代码会起作用。它失败了,有人可以帮我理解它为什么失败吗?

错误:

$("tr").each.find 不是函数 [中断此错误]

$('tr').each.find('td').eq(coli)(function() {

表的标题行应用了差异类,并且正文应用了差异类,如果重要的话......

        rowi = this.rowIndex;
        var coli = e.target.cellIndex;
        cellval = $('tr').eq(rowi).find('td').eq(coli).text();

    $("#filterbutton").click(function() {
        var row = new Array();
        $('tr').each.find('td').eq(coli)(function() {
                if ($(this).text() == cellval) {  //  you can add aditional filter criteria... || $(this).text() == 50) {
                    row.push($(this).index());
                }
            });
        $('th,td').each(function() {
            if (($.inArray($(this).index(), row)==-1) && ($(this).index() != '0')){$(this).hide();}
        });
    });
4

3 回答 3

1

$('tr').each期望一个函数调用每个tr

$('tr').each(function() {
    var $cell = $(this).find('td').eq(coli);

    if ($cell.text() == cellval) {
        row.push(this.rowIndex);
    }
});
于 2012-09-28T00:57:28.980 回答
0

$('tr').each.find('td').eq(coli)(function() {

应该:

$('tr td:eq(' + coli +')').each(function() { ...

于 2012-09-28T00:58:02.440 回答
0

您在这里使用了错误的语法.. 而不是

$('tr').each.find('td').eq(coli)(function() {
           if ($(this).text() == cellval) { 
              row.push($(this).index());
           }
   });

// 尝试这个

$('tr').each.find('td').eq(coli)(function() {
      var $curr = $(this).find('td:eq('+ coli + ')') ; (OR) $(this).find('td').eq(coli) ; 

      if ($curr.text() == cellval) { 
          row.push($(this).index());
      }
   });
于 2012-09-28T01:30:41.213 回答