Я не уверен, есть ли лучший способ сделать это, однако у меня есть ul, который я фильтрую по значению типа данных каждого элемента li.Это прекрасно работает для одного фильтра, так как он запускается как объект ul, а затем возвращает массив или подобный массиву правильных элементов li, однако .find, похоже, не работает с массивом объектов, только с одним объектом ul.Если есть простой способ преобразовать объекты li обратно в один объект для второго фильтра, или, возможно, есть лучший способ отфильтровать массив li по значению типа данных.Заранее спасибо.
Редактировать: Весь код слишком длинный, чтобы публиковать здесь, однако, $data = $('#records');
- это то, что дает мне ul, а затем var $filteredData = $data.find('li[data-type*= ' + $($filterType1+":checked").val() + ' ]');
- то, что правильно дает мне первые отфильтрованные записи.
С этим я получаю массив из 24 элементов после первого фильтра, но затем ноль со вторым фильтром, хотя их должно быть больше одного.Чтобы проверить, я тогда не фильтровал, а просто получил каждый li с find и попытался запустить первый фильтр для этого массива, но он не прошел.Таким образом, создается впечатление, что .find не может быть запущен над массивом.
Это работает:
$data = $('#records');
var $filteredData = $data.find('li[data-type*= ' + $($filterType1+":checked").val() + ' ]');
Оба эти сбоя:
$data = $('#records');
var $filteredData = $data.find('li[data-type*= ' + $($filterType1+":checked").val() + ' ]');
$filteredData = $filteredData.find('li[data-type*= ' + $($filterType2+":checked").val() + ' ]');
$data = $('#records');
var $filteredData = $data.find('li');
$filteredData = $filteredData.find('li[data-type*= ' + $($filterType1+":checked").val() + ' ]');