0

列の値でhtmlテーブルをフィルタリングしようとしています(垂直方向にはMS Excelフィルターのように)。次のコードでうまくいくと思いました。それは失敗しています、誰かが私がそれが失敗している理由を理解するのを手伝ってもらえますか?

エラー:

$( "tr")。each.findは関数ではありません[このエラーで中断]

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

テーブルのヘッダー行にはdiffクラスが適用されており、重要な場合は本体にdiffクラスが適用されています...

        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 に答える