Непоняткм с 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 // вставляется во все слоты } Почему и как поправить? |
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 // вставляется во все слоты } |
Что почему?
Вы хоть тестовый пример делайте. Что бы за вас не делать. <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> |
Это надо вот так писать
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; // вставляется во все слоты } |
Всё понятно. Всем спасибо. Буду искать что у меня не так).
|
Часовой пояс GMT +3, время: 16:38. |