如何使用.innerText在函数中求和?

问题描述 投票:0回答:1

这里是我所要表达的内容。这段代码定义了一个函数来计算我需要的所有总数。

function getTotals() {
    var input1 = document.getElementById("input1").nodeValue;
    var input2 = document.getElementById("input2").nodeValue;
    var input3 = document.getElementById("input3").nodeValue;
    var input4 = document.getElementById("input4").nodeValue;
    var input5 = document.getElementById("input5").nodeValue;

    var subTotal = input1 + input2 + input3 + input4 + input5;
    document.getElementById("subtotal").innerText = subTotal;

    var total = (subTotal * 0.08875) + subTotal;
    document.getElementById("total").innerText = total;

    var item1 = document.getElementById("item-input1").nodeValue; 
    var item2 = document.getElementById("item-input2").nodeValue;
    var item3 = document.getElementById("item-input3").nodeValue;
    var item4 = document.getElementById("item-input4").nodeValue;
    var item5 = document.getElementById("item-input5").nodeValue;

    var itemTotal = item1 + item2 + item3 + item4 + item5;
    document.getElementById("total-items").innerText = itemTotal;
}
javascript button
1个回答
0
投票

因此,我建议您提出一些建议。首先,如果您试图将输入中的数字相加,则应从字符串解析为所需的值类型。例如:

var input1 = parseFloat(document.getElementById("input1").value);    

但是更大的问题可能是您使用的是.nodeValue而不是.value。这是w3schools.com必须说的:“如果节点是元素节点,则nodeValue属性将返回null。”


0
投票

nodeValue返回stringnodeValue docs您可以尝试执行console.log(typeof item1)当您将两个字符串加在一起时,+运算符会进行字符串连接,因此您将字符串“ 123”添加到字符串“ 456”时会得到“ 123456”

要在示例中实际求和,您需要数字而不是字符串。您可以使用Number()或仅在字符串+ '25'=== 25]前面加上+

Number() docs

© www.soinside.com 2019 - 2024. All rights reserved.