Я нашел код для "живого поиска" по списку элементов. Но когда нет результатов, то список просто становиться пустым. Мне надо что-бы появилась надпись "нет результатов".
Вот код:
<div class="game-carts elastic">
<span id="no-result-id" class="no-result no-result-hide">no result</span>
<article class="game-item">
<h3 class="card-hide-title">Title 1</h3>
</article>
<article class="game-item">
<h3 class="card-hide-title">Title 2</h3>
</article>
<article class="game-item">
<h3 class="card-hide-title">Title 3</h3>
</article>
</div>
document.querySelector('#elastic').oninput = function () {
let val = this.value.trim();
let elasticItems = document.querySelectorAll('.elastic article h3');
if (val != '') {
elasticItems.forEach(function (elem) {
if (elem.innerText.search((RegExp(val,"gi"))) == -1 ) {
elem.closest("article").classList.add('hide');
}
else {
elem.closest('article').classList.remove('hide');
}
});
}
else {
elasticItems.forEach(function (elem) {
elem.closest('article').classList.remove('hide');
});
}
};