2013-05-25 2 views
0

Я пробовал этот код для фильтрации всех столбцов моего вида сетки текстовым полем, но он просто фильтрует последний столбец моей сетки. Как я могу его изменить? Что не так в моем коде? Мой первый столбец равен 2, а последний - 4. Мой цикл цикла начинается с 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

спасибо за вашу помощь извините, потому что у меня не было времени на редактирование моего вопроса, я не могу задать свой вопрос в хорошей манере, я пробую больше, чем это, и задаю вопрос хорошей формы в будущем. Ваш ответ очень полезен –

Смежные вопросы