JSFiddle - React, Tailwind, and code Playground
HTML
<form class="filters">
<div>
<input type="date" id="date_start">
-
<input type="date" id="date_stop">
</div>
<div>
<select id="type">
<option value="">Тип</option>
<option value="Легковой">Легковой</option>
<option value="Грузовой">Грузовой</option>
</select>
<select id="color">
<option value="">Цвет</option>
<option value="Красный">Красный</option>
<option value="Синий">Синий</option>
</select>
</div>
</form>
<div class="items">
<div class="item">
<span class="type">Легковой</span>
<span class="color">Красный</span>
<span class="date_start">02.11.2019</span>
-
<span class="date_stop">05.11.2019</span>
</div>
<div class="item">
<span class="type">Легковой</span>
<span class="color">Синий</span>
<span class="date_start">04.11.2019</span>
-
<span class="date_stop">06.11.2019</span>
</div>
<div class="item">
<span class="type">Грузовой</span>
<span class="color">Красный</span>
<span class="date_start">05.11.2019</span>
-
<span class="date_stop">10.11.2019</span>
</div>
<div class="item">
<span class="type">Грузовой</span>
<span class="color">Синий</span>
<span class="date_start">12.11.2019</span>
-
<span class="date_stop">12.11.2019</span>
</div>
</div>
CSS
.hide {display:none;}
JavaScript
var filters = document.querySelector('.filters');
var items = document.querySelector('.items');
var filter_ = filters.querySelectorAll('input, textarea, select');
var item_ = items.querySelectorAll('.item');
filter_.forEach(function(element)
{
element.oninput = function()
{
filter();
}
});
function filter()
{
var hide = false;
item_.forEach(function(item)
{
hide = false;
item.classList.remove('hide');
filter_.forEach(function(filter)
{
if(filter.value.length)
{
var text = item.querySelector('.'+filter.id).innerText;
if(filter.type == 'date')
{
var text_ = text.split('.');
text = text_[2]+'-'+text_[1]+'-'+text_[0];
}
if(filter.value != text)
{
hide = true;
}
}
});
if(hide) item.classList.add('hide');
});
}