Скрыть div, если его числовое значение меньше 1
Всем привет, собственно нужна ваша помощь, что имеется:
<span class="header__favorites-count msFavoriter">1</span>
Пытаюсь изобразить такое - если значение в спане 0, то его скрывать, если больше то показывать.
let block_array = document.querySelectorAll(".msFavoriter");
for (let i = 0; i < block_array.length; i++) {
let value = block_array.innerHTML;
value <= 0 || isNaN(value) ? block_array[i].classList.add("none") : block_array[i].classList.remove("none");
}
При том, что сейчас есть, класс висит постоянно. Как заставить работать ? Заранее спасибо!
Ответы (2 шт):
let div = document.getElementById('fav')
let span = document.getElementById('spn').innerText;
span < 1 ? div.style.display = 'none' : div.style.display = 'block'
Превращая пустую строку в число, получаете 0. Поэтому переменная isEmpty будет true только если текст элемента - "0" или пустая строка.
let span = document.querySelectorAll(".msFavoriter");
for (let i = 0; i < span.length; i++) {
let isEmpty = Number( span[i].textContent ) === 0;
span[i].classList[ isEmpty ? "add" : "remove" ]("hidden");
}
span { border: 1px solid red; padding: 5px; margin: 5px; }
.hidden { display: none; }
<span class="msFavoriter">1</span>
<span class="msFavoriter">0</span>
<span class="msFavoriter">2</span>
<span class="msFavoriter">0</span>
<span class="msFavoriter">3</span>
<span class="msFavoriter"></span>
<span class="msFavoriter">Moo</span>
P.s. Из контекста вопроса не совсем понятно: Если значения блоков будут меняться в течение времени, эту проверку нужно перенести в ту функцию, из-за которой происходят изменения. Чтобы заодно проверяла значение и меняла состояние блока. В текущем варианте скрипт отработает один раз, в момент загрузки страницы.