jQuery таблица фильтра - исключить вместо включения - PullRequest
0 голосов
/ 10 февраля 2020

В настоящее время я использую этот код (из w3schools ), чтобы добавить фильтр поиска в таблицу HTML:

$(document).ready(function () {
  $("#myInput").on("keyup", function () {
    var value = $(this).val().toLowerCase();
    $("#myTable tr").filter(function () {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
    });
  });
});

У меня вопрос, возможно ли иметь это код исключает совпадающие результаты вместо включения? Я пытался манипулировать кодом разными способами, но безрезультатно. По общему признанию, я очень плохо знаком с JS / jQuery кодированием.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

Вы можете противопоставить indexOf () результат вашему текущему:

$(document).ready(function () {
  $("#myInput").on("keyup", function () {
    var value = $(this).val().toLowerCase();
    $("#myTable tr").filter(function () {
      $(this).toggle($(this).text().toLowerCase().indexOf(value) === -1)
    });
  });
});
0 голосов
/ 10 февраля 2020

Вы можете проверить, не является ли ввод пустой строкой, сохранить значение в переменной и использовать его для фильтрации элементов:

var show = (value !== '') ? ($(this).text().toLowerCase().indexOf(value) === -1) : true;
$(this).toggle(show);

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

Надеюсь, вы нашли это полезным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...