Я использую 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], который должен был означать, что был найден только первый столбец (в котором перечислены категории), а не фактическое содержимое таблицы. Может кто-нибудь помочь, пожалуйста? Спасибо!