У меня есть форма с четырьмя выпадающими списками, в каждом из которых указано X
количество значений;
Тема, Тип, Месяц, Местоположение
И затем у меня естьтаблица с несколькими строками, извлеченными из базы данных с одинаковыми заголовками столбцов.
Тема, тип, месяц, местоположение
Каждая строка данных отличается.
Я хочу создать систему фильтров, в которую входит функция $(select).change
, создает массив значений из всех выбранных раскрывающихся списков и затем применяет функцию jquery hide/show
, где бы она ни соответствовала.Строки таблицы имеют классы, назначенные им динамически, например:
<tr class="subjectVal typeVal monthVal locationVal"><td>lorem ipsum</td>...</tr>
На данный момент у меня есть:
$("form select").change(function() {
var values = [];
$("form select").each(function() {
if ($(this).val() != "Please select...") {
values.push($(this).val());
}
});
$("table.events tr.row").each(function() {
tr = $(this);
$.each( values, function(index, item){
if (!$(tr).hasClass(item)) {
$(tr).hide();
} else {
$(tr).show();
}
});
});
});
Но это, если массив значений содержит более одного элемента, только этот элементфильтрует таблицу.Если я выберу тему, затем выберу место, оно всегда будет отображать все эти места, независимо от того, какой предмет я выбрал.