Из 2 калькуляторов работает только один

Нужно сделать 2 расчета стоимости на одной странице. Второй калькулятор подсчитывает значения и выводит сумму на первый калькулятор. Нужно чтобы они работали раздельно друг от друга. Готов заплатить за помощь!!

var lastId = 9; // номер последнего inputa
    let res = document.getElementById('result');
    let ress = document.getElementById('results')
    function calc2() {
            var price = 0;
            inputs = document.querySelectorAll('input');
            
            for (var i = 0; i < inputs.length; i+=2) { // посчитаем сумму всех инпутов
                price += inputs[i].value * inputs[i+1].value;
                inputs[i].addEventListener('change', calc2);
            }
            res.innerHTML = price;
    }


    function addQuestion() {
    
        var d = document;

        let inputs = document.querySelectorAll('input');
        for (var i = 0; i < inputs.length; i++) {
            inputs[i].addEventListener('change', calc2);
        }
        
        var newdiv = d.createElement("div"); 
        newdiv.innerHTML = `<div class="line1">
                <div class="label-cal">
                    <label class="ttll" for>Следующая панель</label>
                </div>
                <span class="nn">
                    <input class="num"  id="num${++lastId}" type="number" value="0" name=""> 
                    x
                    <input class="num" id="num${++lastId}" type="number" value="0" name="">
                    см
                </span>
                </div> `;
        document.getElementById("parentId").appendChild(newdiv);

        inputs = document.querySelectorAll('input');
      for (var i = 0; i < inputs.length; i++) {
        inputs[i].addEventListener('change', calc2);
      }
            
    };

    

      let input = document.getElementById('num');
      let input2 = document.getElementById('num2');
      let input3 = document.getElementById('num3');
      let input4 = document.getElementById('num4');  


      
    
          let inputs = document.querySelectorAll('input');
         
          for (var i = 0; i < inputs.length; i++) {
           inputs[i].addEventListener('change', calc);
          }

    function calc(){
      
       var price = 0;
        
        price += parseInt(input.value) * parseInt(input2.value);
        price += parseInt(input3.value) * parseInt(input4.value);

       
        res.innerHTML = price;

      } 









    
    <section id="calculator">
        
          
       
          <div class="label-cal">
            <label for>1-я панель</label>
          </div>

          <span class="nn">
            <input   id="num" type="number" value="0" name=""> 
            x
            <input id="num2" type="number" value="0" name="">
            см
          </span>
      
       
          <div class="label-cal">
            <label class="ttll" for>2-я панель</label>
          </div>
          <span class="nn">
            <input id="num3"  type="number" value="0" name=""> 
            x
            <input  id="num4"  type="number" value="0" name=""> 
            см  
          </span>
          <div  id="add" onclick ="addQuestion()">Добавить</div>
               
                <div id="parentId"></div>


        
          <hr>
          <div class="cal-line">
            <span >Итого</span>
            <span >&nbsp;руб</span>
            <span id="result">0</span>
          </div>
 </div>
    </section>


    <section id="calculator">
      
          <div class="label-cal">
            <label  for>1-я панель</label>
          </div>
          <span class="nn">
            <input  type="number" value="0" name=""> 
            x
            <input  type="number" value="0" name="">
            см
          </span>
        

        
          <div class="label-cal">
            <label for>2-я панель</label>
          </div>
          <span class="nn">
            <input  type="number" value="0" name=""> 
            x
            <input  type="number" value="0" name=""> 
            см  
          </span>

          <div id="add" onclick="addQuestion()" >Добавить</div>
      
        <div id="parentId"></div>

          <hr>

          <div>
            <span>Итого</span>
            <span>&nbsp;руб</span>
            <span id="results">0</span>
          </div>
        
   
    </section>


Ответы (1 шт):

Автор решения: Andrey Semykin

Если я правильно понял, требовалось чтобы первый калькулятор считал и выводил свою сумму, а второй - свою. Если я понял неправильно, то требовалось лучше объяснить задачу :)

var lastId = 9; // номер последнего inputa
let res = document.getElementById('result');
let ress = document.getElementById('results')

function calc2() {
  var price = 0;
  inputs = calculator.querySelectorAll('input');
  inputs2 = calculator2.querySelectorAll('input');

  for (var i = 0; i < inputs.length; i += 2) { // посчитаем сумму всех инпутов первого калькулятора
    price += inputs[i].value * inputs[i + 1].value;
    inputs[i].addEventListener('change', calc2);
  }
  res.innerHTML = price;

  price = 0;
  for (var i = 0; i < inputs2.length; i += 2) { // посчитаем сумму всех инпутов второго калькулятора
    price += inputs2[i].value * inputs2[i + 1].value;
    inputs2[i].addEventListener('change', calc2);
  }
  ress.innerHTML = price;
}




    function addQuestion() {

      var d = document;

      let inputs = calculator.querySelectorAll('input');
      for (var i = 0; i < inputs.length; i++) {
        inputs[i].addEventListener('change', calc2);
      }

      var newdiv = d.createElement("div");
      newdiv.innerHTML = `<div class="line1">
                <div class="label-cal">
                    <label class="ttll" for>Следующая панель</label>
                </div>
                <span class="nn">
                    <input class="num"  id="num${++lastId}" type="number" value="0" name=""> 
                    x
                    <input class="num" id="num${++lastId}" type="number" value="0" name="">
                    см
                </span>
                </div> `;
      document.getElementById("parentId").appendChild(newdiv);

      inputs = calculator.querySelectorAll('input');

      for (var i = 0; i < inputs.length; i++) {
        inputs[i].addEventListener('change', calc2);
      }

    };

    function addQuestion2() {

      var d = document;

      let inputs2 = calculator2.querySelectorAll('input');
      for (var i = 0; i < inputs2.length; i++) {
        inputs2[i].addEventListener('change', calc2);
      }

      var newdiv = d.createElement("div");
      newdiv.innerHTML = `<div class="line1">
              <div class="label-cal">
                  <label class="ttll" for>Следующая панель</label>
              </div>
              <span class="nn">
                  <input class="num"  id="num${++lastId}" type="number" value="0" name=""> 
                  x
                  <input class="num" id="num${++lastId}" type="number" value="0" name="">
                  см
              </span>
              </div> `;
      document.getElementById("parentId2").appendChild(newdiv);

      inputs2 = calculator2.querySelectorAll('input');
      for (var i = 0; i < inputs2.length; i++) {
        inputs2[i].addEventListener('change', calc2);
      }

    };



    let input = document.getElementById('num');
    let input2 = document.getElementById('num2');
    let input3 = document.getElementById('num3');
    let input4 = document.getElementById('num4');




    let inputs = calculator.querySelectorAll('input');
    let inputs2 = calculator2.querySelectorAll('input');

    for (var i = 0; i < inputs.length; i++) {
      inputs[i].addEventListener('change', calc2);
    }
    for (var i = 0; i < inputs2.length; i++) {
      inputs2[i].addEventListener('change', calc2);
    }


   function calc() {

      var price = 0;

      price += parseInt(input.value) * parseInt(input2.value);
      price += parseInt(input3.value) * parseInt(input4.value);


      res.innerHTML = price;

    }
<section id="calculator">



  <div class="label-cal">
    <label for>1-я панель</label>
  </div>

  <span class="nn">
              <input   id="num" type="number" value="0" name=""> 
              x
              <input id="num2" type="number" value="0" name="">
              см
            </span>


  <div class="label-cal">
    <label class="ttll" for>2-я панель</label>
  </div>
  <span class="nn">
              <input id="num3"  type="number" value="0" name=""> 
              x
              <input  id="num4"  type="number" value="0" name=""> 
              см  
            </span>
  <div id="add" onclick="addQuestion()">Добавить</div>

  <div id="parentId"></div>



  <hr>
  <div class="cal-line">
    <span>Итого</span>
    <span>&nbsp;руб</span>
    <span id="result">0</span>
  </div>
  </div>
</section>


<section id="calculator2">

  <div class="label-cal">
    <label for>1-я панель</label>
  </div>
  <span class="nn">
              <input  type="number" value="0" name=""> 
              x
              <input  type="number" value="0" name="">
              см
            </span>



  <div class="label-cal">
    <label for>2-я панель</label>
  </div>
  <span class="nn">
              <input  type="number" value="0" name=""> 
              x
              <input  type="number" value="0" name=""> 
              см  
            </span>

  <div id="add" onclick="addQuestion2()">Добавить</div>

  <div id="parentId2"></div>

  <hr>

  <div>
    <span>Итого</span>
    <span>&nbsp;руб</span>
    <span id="results">0</span>
  </div>
</section>

→ Ссылка