首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Javascript中,怎样才能使带有正数的计数成为可选的?

在Javascript中,怎样才能使带有正数的计数成为可选的?
EN

Stack Overflow用户
提问于 2017-11-23 19:30:49
回答 3查看 66关注 0票数 0

我正在用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 >

我想我必须使用++,但我想不出

EN

回答 3

Stack Overflow用户

发布于 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代码,因此您需要进行一些调整。但是,它应该可以帮助您找出哪里出了问题。

票数 0
EN

Stack Overflow用户

发布于 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>

票数 0
EN

Stack Overflow用户

发布于 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>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47454493

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档