Почему в IE не работает сценарий «очистки» функции поиска по таблице - PullRequest
0 голосов
/ 21 февраля 2020

Я использую javascript для поиска в html -таблице, используя два метода: категорию (раскрывающийся список опций выбора) и панель поиска (ввод текста).

Я использовал следующий скрипт и он работал нормально в chrome, но не ie:

 function _filter(row) {
        var input = document.getElementById("searchInput");
        var category = row.getElementsByTagName('td')[0].textContent;
        var filter = input.value.toUpperCase();
        var text = row.textContent.toLowerCase(), val = _input.value.toLowerCase();
        row.style.display = text.indexOf(val) === -1 ? 'none' : ((filter === '' || category.includes(filter)) && 'table-row');
    }

Так что я изменил includes на indexOf, как показано ниже.

function _filter(row) {
        var input = document.getElementById("searchInput");
        var category = row.getElementsByTagName('td')[0].textContent;
        var filter = input.value.toUpperCase();
        var text = row.textContent.toLowerCase(), val = _input.value.toLowerCase();
        row.style.display = text.indexOf(val) === -1 ? 'none' : ((filter === '' || category.indexOf(filter)) && 'table-row'); 

Это работает, но когда я возвращаю буквы или выбираю очистить, таблица возвращает все строки полной таблицы, независимо от выбранной текущей категории. Этого не произошло при использовании содержимого. Кажется, он больше не учитывает массив getElementsByTagName [0], который должен был означать, что был найден только первый столбец (в котором перечислены категории), а не фактическое содержимое таблицы. Может кто-нибудь помочь, пожалуйста? Спасибо!

1 Ответ

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

По совету @ Deepak-MSFT.

Помещение комментария, которое помогло, в качестве ответа.

Одна вещь.

category.indexOf(filter) должно быть category.indexOf(filter) !== -1.

Поскольку indexOf может вернуть 0, что будет считаться false.

См. Раздел «Проверка вхождений» в

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf

...