Premisse
@Premisse
Python, Django

JS: как обработать таблицу построчно?

Как обрабатывать отдельно каждую строку в таблице - умножение введенного числа на число из соседней ячейки в этой же строке и подстановка результата в другую ячейку этой строки.
На данный момент есть вот такой вариант, но данные берутся только из первой строки, а результат подставляется сразу во все строки:
for (var i = 0, row; row = table.rows[i]; i++) {
        $(row).on('change', 'input[type="number"]', function (event) {
            var target = event.target;
            console.log(target.value);

            var sum = parseInt($('.price').text()) * target.value;
            console.log(sum);

            $('.item_result').html(sum);
        })
    }
}


вот кусок таблицы:

<table class="table table-hover table-responsive" id="table">
				  <tbody>
					<tr class="line">
					  <td rowspan="6" class="bottom-lines">Пенополистирол</td>
					  <td>40 мм</td>
					  <td class="price">730руб/кв.м.</td>
					  <td><input type="number" min="0"></td>
					  <td class="item_result">0</td>
					</tr>
					<tr class="line">
					  <td>50 мм</td>
					  <td class="price">755.</td>
					  <td><input type="number" min="0"></td>
					  <td class="item_result">0</td>
					</tr>
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
document.querySelector('table').addEventListener('input', function(e) {
  const
    tr = e.target.closest('tr'),
    price = tr.querySelector('.price').textContent.match(/\d+/),
    value = e.target.value;

  tr.querySelector('.item_result').textContent = value * price;
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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