Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.10.2023, 08:25
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

Непоняткм с 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 // вставляется во все слоты
}

Почему и как поправить?
Ответить с цитированием
  #2 (permalink)  
Старый 24.10.2023, 09:27
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,493

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 // вставляется во все слоты
}
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 24.10.2023, 09:28
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,706

Что почему?
Вы хоть тестовый пример делайте.
Что бы за вас не делать.
<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>
Ответить с цитированием
  #4 (permalink)  
Старый 24.10.2023, 09:36
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,706

Это надо вот так писать
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; // вставляется во все слоты
}
Ответить с цитированием
  #5 (permalink)  
Старый 24.10.2023, 12:53
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 765

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Освобождается ли память, если переписать innerHTML? Was-Ja Общие вопросы Javascript 5 09.10.2020 12:23
контент из XMLHttpRequest response с помощью innerHTML не работает m4ybe Events/DOM/Window 9 24.01.2018 14:35
innerHTML не отображает swf плеер web-master Общие вопросы Javascript 3 23.02.2014 18:34
innerHTML....? Hapson Элементы интерфейса 4 24.07.2013 01:33
ошибка с innerHTML Gekt0r Общие вопросы Javascript 15 21.08.2008 11:57