Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Непоняткм с innerHTML (https://javascript.ru/forum/events/85568-neponyatkm-s-innerhtml.html)

ureech 24.10.2023 08:25

Непоняткм с innerHTML
 
Привет
var slots = document.querySelectorAll('.slot')
for (var i = 0; i < slots.length; i++) {
if (slots[i].classList.contains('less-today')) continue
console.log(slots[i].classList) // тут нет слотов с классом 'less-today'
slots[i].innerHTML = slots[i].dataset.price // вставляется во все слоты
}

Почему и как поправить?

Aetae 24.10.2023 09:27

var slots = document.querySelectorAll('.slot')
for (var i = 0; i < slots.length; i++) {
  if (slots[i].classList.contains('less-today')) {
    console.log('less-today', slots[i].className) // а тут есть?
    continue
  }
  console.log(slots[i].classList) // тут нет слотов с классом 'less-today'
  slots[i].innerHTML = slots[i].dataset.price // вставляется во все слоты
}

voraa 24.10.2023 09:28

Что почему?
Вы хоть тестовый пример делайте.
Что бы за вас не делать.
<head>
<style>
.slot {
	position: relative;
	width: 50px;
	height: 32px;
}
.less-today {
	background-color: yellow;
}
</style>
</head>

<body>
<div class="slot" data-price="1"></div>
<div class="slot less-today" data-price="2"></div>
<div class="slot" data-price="3"></div>
<div class="slot less-today" data-price="4"></div>
<div class="slot" data-price="5"></div>
<div class="slot less-today" data-price="6"></div>
<div class="slot" data-price="7"></div>
<script>
var slots = document.querySelectorAll('.slot')
for (var i = 0; i < slots.length; i++) {
if (slots[i].classList.contains('less-today')) continue
console.log(slots[i].classList) // тут нет слотов с классом 'less-today'
slots[i].innerHTML = slots[i].dataset.price // вставляется куда надо
}
</script>
</body>

voraa 24.10.2023 09:36

Это надо вот так писать
const slots = document.querySelectorAll('.slot:not(.less-today)');
for (let i = 0; i < slots.length; i++) {
console.log(slots[i].classList); // тут нет слотов с классом 'less-today'
slots[i].innerHTML = slots[i].dataset.price; // вставляется во все слоты
}

ureech 24.10.2023 12:53

Всё понятно. Всем спасибо. Буду искать что у меня не так).


Часовой пояс GMT +3, время: 21:06.