简体   繁体   中英

Javascript += equivalent?

My code is a simple function that checks which radio button was pressed, and adds the value of that radio button to my var input = 0; . However, I know I am doing something wrong as it works but the output is wrong. When one of the if statements is true, instead of input(0) now being equal to itself plus the new value of the getElementById("small").value , it prints out 010 as opposed to the now 10 .

I know in Java there was a convention similar to input += getElementById("small").value; but this doesn't seem to work. So as you can see in my example below, I tried the alternative of input = input + /*code*/; but still no luck.

I am new to JavaScript but very familiar with Java. I imagine I'm just using the wrong syntax here but all my Google searches are a bust.

function calculate()
{
    var input = 0;
    if (document.getElementById("small").checked) 
    {
        input = input + document.getElementById("small").value;
    }
    else if (document.getElementById("medium").checked)
    {
        input = input + document.getElementById("medium").value;
    }
    else if (document.getElementById("large").checked)
    {
        input = input + document.getElementById("large").value;
    }
    else
    {
        alert("failed");
    }

    document.getElementById("outar").innerHTML = input;
}

You're trying to do arithmetic with a string. You need to use parseInt() around each of your document.getElementById("....").value expressions because the .value property is a string.

Example:

input += parseInt(document.getElementById("small").value);

Your value is not a number by default, it's a string. You got to parse it first:

input += parseInt(document.getElementById("large").value);

您可以在字符串值之前添加额外的+符号,以便将其转换为数字:

input += +document.getElementById("large").value;

You need to convert .value to a number as an integer or a float with parseInt or parseFloat . .value is a string.

Javascript is dynamically typed language, not static typed like java. document.getElementById("small").value returns a string which needs to be converted to int with parseInt().

Ho[e that helps :)

You can also refer to this link-

The returned value from the value is a string . You have to convert it to int before doing any arithmetic operations.

JavaScript is a dynamically typed language, not static typed like java.

Return Value : A String, representing the value of the text field

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM