2013-05-25 62 views
0

我試過這段代碼,通過文本框過濾我的網格視圖的所有列,但它只是過濾我的網格的最後一列。我該如何改變它?我的代碼有什麼問題?我的第一列是2,最後一個是4.我的for循環以2開始,以4結尾,但是當我嘗試這個「」(i = 2; i < 4; i ++)時,它顯示我的索引爲3的列。網格過濾只是過濾最後一列

$(document).ready(function() { 
     // Client Side Search (Autocomplete) 
     // Get the search Key from the TextBox 
     // Iterate through the 1st Column. 
     // td:nth-child(1) - Filters only the 1st Column 
     // If there is a match show the row [$(this).parent() gives the Row] 
     // Else hide the row [$(this).parent() gives the Row] 

     $('#filter').keyup(function (event) { 
      var searchKey = $(this).val(); 
      for (i =2; i<5; i++) { 
       $("#gvwHuman_ctl00 tr td:nth-child(" + i + ")").each(function() { 
       // $("#gvwHuman_ctl00 tr td:nth-child(" + i + ")").each(function() { 
        var cellText = $(this).text(); 
        if (cellText.indexOf(searchKey) >= 0) { 
         $(this).parent().show(); 
        } else { 
         $(this).parent().hide(); 
        } 
       }); 
      } 
     }); 
    }); 
+0

我不知道我明白爲什麼這個問題是downvoted並投票決定關閉。 –

回答

1

問題是,對於該行的每個單元格,您顯示或隱藏該行。所以只有最後一個很重要。

你可以這樣做:

 // 1 : hide all rows 
     $("#gvwHuman_ctl00 tr").hide(); 

     // 2 : show the row if there is one match 
     for (i =2; i<5; i++) { 
      $("#gvwHuman_ctl00 tr td:nth-child(" + i + ")").each(function() { 
      // $("#gvwHuman_ctl00 tr td:nth-child(" + i + ")").each(function() { 
       var cellText = $(this).text(); 
       if (cellText.indexOf(searchKey) >= 0) { 
        $(this).closest('tr').show(); 
       } 
      }); 
     } 
+0

感謝您的幫助對不起,因爲我沒有時間編輯我的問題我不能問我的問題,以良好的方式我嘗試超過這個,並在未來問良好的形狀問題你的答案是非常有用的,非常感謝 –