Filter() JQ. Для чего он в этом коде?

234
25 декабря 2017, 11:11

Задача здесь - поиск по введённых буквах. Так вот, всё работает, но я не могу понять для чего мы здесь используем

filter()

если

toggle()

делает

"display: none"

для тех, кто не подошёл по требованиям. И я часто встречаю

indexOf(value) > -1

зачем он данном примере? Объясните, пожалуйста, последнюю строку кода, ибо я вроде понимаю, но это не точно )

$(document).ready(function() { 
  $("#inputforsearch").on("keyup", function() { 
    var value = $(this).val().toLowerCase(); 
    $("#tabcontent tr").filter(function() { 
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1); 
    }); 
  }); 
});
table { 
  text-align: left; 
  width: 100%; 
} 
 
tr:nth-child(odd) { 
  background-color: grey; 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<input type="text" placeholder="Search..." id="inputforsearch"> 
</br> 
<table> 
  <tr> 
    <th>Name</th> 
    <th>Surname</th> 
    <th>Email</th> 
  </tr> 
  <tbody id="tabcontent"> 
    <tr> 
      <td>Andrew</td> 
      <td>Yaremchuk</td> 
      <td>a.yaremchuk99@gmail.com</td> 
    </tr> 
    <tr> 
      <td>Vasya</td> 
      <td>Vakulenko</td> 
      <td>bastaakanoganno@mail.ru</td> 
    </tr> 
    <tr> 
      <td>Miron</td> 
      <td>Fedorow</td> 
      <td>norimyxxxo@boocking.com</td> 
    </tr> 
  </tbody> 
</table>

Answer 1
$("#inputforsearch").on("keyup", function() {
// как только клавиша отпущена, запускай функцию
    var value = $(this).val().toLowerCase();
    // буква, к нижнему регистру
    $("#tabcontent tr").filter(function() {
    // теперь из всех tr которые потомки #tabcontent отдай выборку-отфильтруй
        $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
        // функция проходит по каждому элементу tr из набора, смотрит, есть ли данная буква в строке: indexOf(value) указывает позицию буквы, -1 значит отсутствие позиции - буквы нет            
        // а если буквы нет - тоджлим весь tr
    });
});
READ ALSO
Не очищаются все таблицы

Не очищаются все таблицы

Есть БД test1, в ней таблица table1

214
Четкость текста в textbox

Четкость текста в textbox

Приветствую, почему может такое быть? Пробовал на нескольких ПК, пробовал менять размер текстбокса, пробовал перемещать его по форме

243
Консольный TCP-чат

Консольный TCP-чат

Нашёл пример консольного TCP чата он состоит из 2-х консольных проектовПервый проект это сервер он содержит классы ServerObject, ClientObject и Program

228