Здравствуйте. Заранее спасибо за помощь. Опишу ситуацию. Есть данный HTML:
<tr id="dayWrap">
<td><span class="day1"><?php echo $product['price_1']; ?></span></td>
<td><span class="day2"><?php echo $product['price_2']; ?></span></td>
<td><span class="day3"><?php echo $product['price_3']; ?></span></td>
<td><span class="day4"><?php echo $product['price_4']; ?></span></td>
<td><span class="day5"><?php echo $product['price_5']; ?></span></td>
</tr>
<span class="total_cat" style="float: right; display: inline-block"></span>
В каждую ячейку для каждой таблицы вставляется своя цена. В итоге в total_cat
будет выводиться сумма(dif
(количество натуральных чисел) * значение переменной $price_n
).
Есть JS:
//захват столбцов с ценами(дни)
let num = dayWrap.getElementsByTagName('span');
//записываем цены в массив
var values = [];
for ( let i = 0; i < num.length; i++ ) {
values.push( num[i].innerHTML );
}
if (dif >=2 && dif <= 3 ) {
for (var i = 0; i < day2.length; i++) {
day2[i].classList.add("red-circle");//добавление стилей
}
classRemove(day1);//удаление стилей для других элементов
classRemove(day3);
classRemove(day4);
classRemove(day5);
var priceForTotal = values[1] * dif;//ТУТ КОСЯК!!!
for(let i = 0; i< total.length; i++){//Вывод суммы в нужном формате
total[i].innerHTML = "Всего: <br> За "+ dif + " дня(дней) " +'<br>' + priceForTotal + ' €';
}
}
В комментарии показано место ошибки и суть вопроса. Нужно, чтобы цены адекватно считались если они подходят к условию if
, если вызывать, через values[1]
, то добавляется одна цена для всех остальных таких таблиц.
Как сделать динамический подсчет для всех таблиц с учетом корректных цен каждой таблицы(надеюсь, понятно объяснил=)).
Спасибо!
После комментариев, я так понял, проблема в том, что вы проходите по всем span
из всех таблиц, и вы не можете посчитать данные для нужной, поэтому (хоть всего кода не видно), нужно всю конструкцию начать с цикла перебора таблиц
var tables = document.querySelectorAll('table')
for (i = 0; i < tables.length; ++i) {
let num = tables[i].getElementsByTagName('span');
// дальше num будут только для конкретной таблицы, а не у всех общая
// ваш код
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я использовал два шрифта похожих на друг друга, Bebas Neune & League Gothic, но почему-то в браузере они выглядят очень коряво и угловато? Почему так...
Делаю адаптивную версию сайтаПочему некоторые медиа-запросы не работают, а игнорируются? Например, последний запрос на 700px?
Как перевести массив char[] к его оболочке Character[] для дальнейшей сортировки в обратном порядке? Делаю по аналогии как с int -> Integer: