Как получить для пересчёта содержимое всех «TD» c классом «.price», не пойму каким макароном?

<table>
 <tr>
  <td class="price">111</td>
  <td class="price">222</td>
  <td class="price">333</td>
  <td class="price">400</td>
  <td class="price">599</td>
 </tr>
</table>


$(document).ready(function() {
$("td.price").each(function(index) {

var zacup = 500;   // ??? содержимое получаемое из всех "td.price" ??? (например указал 500 - работает)

var marja = zacup / 100 * 10;
var check_CNY = zacup + marja;
var curs_CNY = 9.2;
var check_RUB = check_CNY * curs_CNY;
$("td.price").text(check_CNY + " / " + check_RUB);
});
});
  • Вопрос задан
  • 69 просмотров
Решения вопроса 4
mrdubz
@mrdubz
front end developer
var zacup = 0;
$('td.price').each(function(){
    zacup += parseFloat($(this).text());  // Or this.innerHTML, this.innerText
});
Ответ написан
l3ftoverz
@l3ftoverz Куратор тега JavaScript
Люблю Финский металкор и ищу работу.
// Массив всех значений в td приведенных к int.
const tableValues = [...document.querySelectorAll('td.price')].map(td => +td.textContent);

// Например их сумма
const summOfValues = tableValues.reduce((a, c) => a + c);
console.log(summOfValues);
Ответ написан
FEMO
@FEMO Автор вопроса
Спасибо всем за подсказки, реализовал с помощью (parseInt), вот так заработало:
$(document).ready(function() {
	$("tr").each(function() {   //производим перебор элементов
		var zacup = parseInt($(this).find(".price").text());   //содержимое получаемое из всех ".price"
		var marja = zacup / 100 * 10;   //процент маржи (10%)
		var check_CNY = zacup + marja;   //отпускная цена в ЮАНЯХ
		var curs_CNY = 9.5;   //биржевой курс РУБЛЯ к ЮАНЮ
		var check_RUB = check_CNY * curs_CNY;   //отпускная цена в РУБЛЯХ
		$(this).find('td.price').text(check_RUB.toFixed(0).replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '));   //вывод в "td.price" - "ЦЕНА_РУБЛЬ"
	});
});

Вроде всё работает нормально, единственно при выводе "check_RUB" грубо обрезал количество знаков после запятой (оставил только целое число), наверно это можно реализовать как то более правильно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы