我正在用javascript做一个计算器,但我希望这个人可以在计数中添加他想要的数字,但我不能把这个放在js上,并使它与3个以上的数字一起工作,事实上,我只与3个数字一起工作,如果你把更少或更多的数字都不起作用:(有人能帮我吗?
代码如下:
function add_fields(){
document.getElementById('linee').innerHTML += '<input type="number" id="nx">';
}
function pluscount(){
var number1 = n1.value;
var number2 = n2.value;
var numberx = nx.value;
var result = eval(number1) + eval(number2) + eval(numberx);
visor.value = result;
}
<input type="number" id="n1">
<input type="number" id="n2">
<button onclick="add_fields()">+</button>
<div id="linee"></div><br>
<button onclick="pluscount()">Somar</button>
<input type="text" id="visor" disabled >
我想我必须使用++
,但我想不出
发布于 2017-11-23 19:46:05
你不能一下子就完成这个计算。相反,您需要使用循环和变量作为临时结果。
这里有一些伪代码来帮助你:
//This means "addNumber()" will be called when you click "button"
document.getElementById("button").addEventListener("click", addNumber());
var result = 0;
function addNumber()
{
var input_string = document.getElementById("inputField");
var input = parseInt(input_string);
//If the user added something that is not a number, dismiss it.
if(isNaN(input)) return;
result += input;
document.getElementById("result").innerHTML = result;
}
请记住,这不是实际的JS代码,因此您需要进行一些调整。但是,它应该可以帮助您找出哪里出了问题。
发布于 2017-11-23 19:47:25
有几种方法可以做到这一点,可能比我所做的更优雅。不过,下面的方法似乎是可行的。
<input type="number" id="n1">
<input type="number" id="n2">
<button onclick="add_fields()">+</button>
<div id="linee"></div><br>
<button onclick="pluscount()">Somar</button>
<input type="text" id="visor" disabled >
<script>
number_of_fields = 2;
function add_fields(){
number_of_fields++;
document.getElementById('linee').innerHTML += '<input type="number" class="field_add" id="n'+number_of_fields+'">';
}
function pluscount(){
var total = 0;
for(var i=1;i<=number_of_fields;i++){
total += parseFloat(document.getElementById('n'+i).value);
}
visor.value = total;
}
</script>
发布于 2017-11-23 23:50:04
您可以在此示例中使用类选择器,在这种情况下,您可以向所有文本输入添加一个类,然后通过命令querySelectorAll ()选择它们。
https://developer.mozilla.org/en/docs/Web/API/Document/querySelectorAll
对你的代码做一点小小的修改
在addFields函数中的第1个更改添加将保留在所有输入中的类
第二次更改添加功能
我们将实现一个循环来传递所有输入与类相等,我们将创建一个变量来负责添加字段的值,不久之后我们就可以使用display为您显示的值了!
强烈的拥抱
<script>
function add_fields(){
document.getElementById('linee').innerHTML += '<input type="number"
class="teste">';
}
function soma(){
//seleciona todos os campos com a classe teste
var teste = document.querySelectorAll(".teste");
//variavel que vai somar os valores
valor = 0;
//faz o loop independete da quantidade de campos que existe dentro do documento
for(x =0;x<teste.length;x++){
valor = eval(valor) + eval(teste[x].value);
}
visor.value = valor;
}
</script>
https://stackoverflow.com/questions/47454493
复制相似问题