【问题标题】:How to make a document.getElementById value into an integer variable, not a string?如何将 document.getElementById 值转换为整数变量,而不是字符串?
【发布时间】:2012-12-03 23:21:02
【问题描述】:

我想传入一个从 html 对象获得的值,将该值转换为整数,以便在输出之前对其进行算术运算。就我现在的代码而言,它只是像字符串一样将它们相加。所以值 5 + 修饰符 100 最终等于 = 5100,而不是 105。

这是我的表单代码:

<form>
    Add Amount: <select id="addTweets">
    <option value=5>5</option>
    <option value=10>10</option>
    <option value=15>15</option>
    </select>
    </br>
    <input type="button" value="Add It" onclick="addTweet()" />
</form>

这是我的脚本:

function addTweet()
{
var mod = 100;
var results = document.getElementById("addTweets").value;
results += mod;

document.getElementById("tweetsOutput").innerHTML = results;
}

【问题讨论】:

  • 您的标题非常令人困惑。 “但是……但是……getElementById是一个函数……它的结果是一个DOM元素……什么字符串?!?”此外,在第二个参数中使用 parseInt 而没有 10 的每个人都为你感到羞耻:p(在这种情况下并不重要,但会形成坏习惯)

标签: javascript


【解决方案1】:

一元加号 (+) 将其操作数强制转换为数字:

var results = +document.getElementById("addTweets").value;
    ...

typeof( results ); // number

【讨论】:

  • 转化为准确的数字
【解决方案2】:

使用 parseInt:

var results = document.getElementById("addTweets").value;
var intResults = parseInt(results, 10) + mod;

【讨论】:

    【解决方案3】:

    您可以使用parseInt

    var results = parseInt(document.getElementById("addTweets").value);
    

    【讨论】:

      【解决方案4】:

      添加parseInt就可以正常添加了

       var results = parseInt(document.getElementById("addTweets").value);
      

      编辑:

      parseInt 备用,你可以使用 "|0" 按位或零

       var results = document.getElementById("addTweets").value|0;
      

      【讨论】:

      • 我很确定我已经先回答了这个问题^^
      【解决方案5】:

      试试:

      var valResult = document.getElementById("addTweets").value; // get the value of the field
      
      var results = parseInt(valResult) + mod; // convert the value to int to do calculation
      
      document.getElementById("addTweets").value = results; // assign results to the field value
      

      【讨论】:

        【解决方案6】:

        一般情况下,你可以通过对其进行数学运算将字符串数值转换为整数:

        x = "9"; //String numerical value
        y = 10;//integer value
        alert(x+y)// output 910;
        x = x*1;
        alert(x+y) // output 19
        

        查看此demo

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-20
          • 2017-05-04
          • 2015-01-08
          • 1970-01-01
          • 2017-04-04
          • 2021-02-15
          • 1970-01-01
          • 2018-07-04
          相关资源
          最近更新 更多