Просчитать сумму всех span

133
25 октября 2019, 18:30

Подскажите пожалуйста, есть код который берет элемент у которого есть id="price" и умножает на данные элемента id="amount" и выводит в элемент с id="summa". Но в данный момент скрипт просчитывает только один элемент с нужным id. Как взять все элементы с id="price" и умножить на все элементы id="amount". Спасибо

    (function () { 
     var price = document.getElementById('price').innerText;  
     var amount = document.getElementById('amount').innerText;  
     var summa = document.getElementById('summa');  
     var sum = amount*price; 
      summa.innerText = sum; 
    })();
<span id="price">20</span> 
<span id="price">30</span> 
<span id="amount">2</span> 
<span id="amount">4</span><br> 
<span id="summa"></span>

Answer 1

Во-первых id должен быть уникальным, тут нужно использовать class.

(function () { 
  var price = document.querySelectorAll('.price');  
  var amount = document.querySelectorAll('.amount');  
  var summa = document.getElementById('summa');  
  var sum = 0; 
 
  price.forEach(function(elem, index){ 
    sum += elem.textContent * amount[index].textContent; 
  }); 
 
  summa.innerText = sum; 
})();
<span class="price">20</span> 
<span class="price">30</span> 
<span class="amount">2</span> 
<span class="amount">4</span><br> 
<span id="summa"></span>

READ ALSO
Как правильно использовать Array.filter с typescript?

Как правильно использовать Array.filter с typescript?

Мне нужно удалить все boolean значения из массива, и оставить только строки(массива состоит из boolean и string), хочу сделать это методом filter, но typeScript...

139
Передается только 1 option

Передается только 1 option

Подскажите пожалуйста, выполняю post запрос, но передается только client, waiter не передаетсяВ чем может быть проблема?

116