2017-05-07 67 views
-2

计算数组中用户输入的总和并将该值存储为变量的最佳方法是什么?获取用户输入的总和并将其存储为变量

我在这里有一个函数,它根据用户输入(number4 [])创建一个数组。

var counter = 1;

var limit = 3; 

function addInput(divName){ 

    if (counter == limit) { 

      alert("You have reached the limit of adding " + counter + " inputs"); 

    } 

    else { 

      var newdiv = document.createElement('div'); 

      newdiv.innerHTML = "Asset($) " + (counter + 1) + " <br><input type='text' name='number4[]'>"; 

      document.getElementById(divName).appendChild(newdiv); 

      counter++; 

    } 

<div class="container7"> 

     <div id ="dynamicInput"> 
     Assets 1($): <INPUT type="text" name="number4[]"> 
     </div> 

     Liabilities 1(%): <INPUT type="text" name="number5"> 

     Result($): <INPUT type="text" name="total1"> 

     <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Calculate"onclick="javascript:networth()"> 



     <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Add asset fields"onclick="addInput('dynamicInput');"> 

    </div> 

</FORM> 

我有没有共1还代码。所以基本上我有数组我只需要帮助确定总和,然后将其分配为一个变量。

回答

0

document.getElementsByName("number4[]")将返回你需要总量可达

function networth(){ 
    var totNo = document.getElementsByName("number4[]").length; 
    var sum = 0; 

    for(var i=0; i<totNo; i++){ 
     sum += parseInt(document.getElementsByName("number4[]")[i].value); 
     console.log(sum); 
    } 
} 
+0

谢谢你这个元素的数组。您如何计算我们刚刚计算出的总和,然后如果负债1具有价值,则将其减去var = liabilities_1?有没有办法将我们刚刚计算的总和分配给一个变量,这样我们就可以做一个简单的sum - liabilities_1函数了? –

+0

您需要输入负债ID 然后,您只需要使用id和do来获取它的值与数学和总和 'var lia = sum *((document.getElementById(“liabilities”)。value)/ 100); var final = sum-lia; console.log(final); ' – user3219222

0

添加ID您输入的元素,并使用 VAR VAL1 =的document.getElementById(“输入的ID,你想要的”)。值 // repete为VAL2 ...用不同的ID,并添加VAL变量

0

您需要获取所有要合计的输入元素。您可以使用querySelectorAll来获取所有需要求和的所有输入中具有相同CSS选择器的所有元素。 https://www.w3schools.com/jsref/met_document_queryselectorall.asp

最后,你可以得到与querySelector以同样的方式输入,如只有一个,没有必要使用所有的变化。 https://www.w3schools.com/jsref/met_document_queryselector.asp

var counter = 1; 
 
var limit = 3; 
 
function networth(){ 
 
    var inputs = document.querySelectorAll("form #dynamicInput input"); 
 
    var networth = 0; 
 
    for (var i = 0; i < inputs.length; i++) { 
 
    networth += parseFloat(inputs[i].value); 
 
    } 
 
    document.querySelector("input[name=total1]").value=networth; 
 
} 
 
function addInput(divName) { 
 
    if (counter == limit) { 
 
    alert("You have reached the limit of adding " + counter + " inputs"); 
 
    } else { 
 
    var newdiv = document.createElement('div'); 
 
    newdiv.innerHTML = "Asset($) " + (counter + 1) + 
 
     " <br><input type='text' name='number4[]'>"; 
 
    document.getElementById(divName).appendChild(newdiv); 
 
    counter++; 
 
    } 
 
}
<form> 
 
    <div class="container7"> 
 

 
    <div id="dynamicInput"> 
 
     Assets 1($):<br> 
 
     <INPUT type="text" name="number4[]"> 
 
    </div> 
 

 
    Liabilities 1(%): 
 
    <INPUT type="text" name="number5"> Result($): 
 

 
    <INPUT type="text" name="total1"> 
 

 
    <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Calculate" onclick="javascript:networth()" /> 
 

 
    <INPUT type="button" style="background-color:#FF8800; border-color:BLACK;" value="Add asset fields" onclick="addInput('dynamicInput');" /> 
 

 
    </div> 
 

 
</FORM>

相关问题