【问题标题】:How do I convert an string to an Int which is came from the input of an button如何将字符串转换为来自按钮输入的 Int
【发布时间】:2015-01-24 12:38:22
【问题描述】:

我需要转换来自我的innerHTML 的字符串,这些字符串是通过单击按钮接收的(我正在制作一个计算器) 如果需要这里是我的 JS:

window.onload = function () {
// your code here
var counter = document.getElementById("scherm");
    var optellen = document.getElementById("1");
    var buttons = document.getElementsByTagName("button");
    var operators = ["+", "-", "*", "/", "=", "C"]

    // maak for loop voor buttons 
    for(var i=0; i<buttons.length; i++)
    {
        buttons[i].addEventListener("click", screen);
    }

    //optellen.addEventListener("click", screen); //+ string + sting aan het einde als je wilt gaan uitrekenen doe je parseInt()

    function screen() {
        if( operators.indexOf(this.innerHTML) != -1)
        {   

            if( operators.indexOf(this.innerHTML) == 5)
            {
                document.getElementById("scherm").innerHTML="";
            }

        }
        else
        {

            counter.innerHTML += this.innerHTML;
        }

        console.log(this.innerHTML);

        //if(counter.innerHTML == this.inner)
        //counter.innerHTML = buttons.innerHTML;
        //
    }

};

根据要求的 HTML: <div id="rekenmachine"> <header><p id="scherm"></p></header> <section id="knoppen"> <div class="row"> <button value="1">1</button> <button value="2" class="pos">2</button> <button value="3" class="pos">3</button> <button value="+" class="pos">+</button> </div> <div class="row"> <button value="">4</button> <button value="" class="pos">5</button> <button value="" class="pos">6</button> <button value="" class="pos">-</button> </div> <div class="row"> <button value="">7</button> <button class="pos">8</button> <button class="pos">9</button> <button class="pos">*</button> </div> <div class="row"> <button value="">C</button> <button value="" class="pos">0</button> <button value="" class="pos">=</button> <button value="" class="pos">/</button> </div> </section>

【问题讨论】:

标签: javascript html string int


【解决方案1】:

应该这样做。

parseInt("10");

来源:http://www.w3schools.com/jsref/jsref_parseint.asp

【讨论】:

    【解决方案2】:

    看看这个:

    http://www.w3schools.com/jsref/jsref_parseint.asp

    (你应该这样做:parseInt(counter.innerHTML))

     else {
         var result;
         if(counter.innerHTML != "") { 
             result = parseInt(counter.innerHTML);
          } else {
              result = 0;
          } 
         result += parseInt(this.innerHTML); 
         counter.innerHTML = result; }
    

    【讨论】:

    • 现在得到它:document.getElementById("scherm").innerHTML=parseInt(document.getElementById("scherm").innerHTML); 但它只在数字前面插入一个 NaN
    • 那不是正确的方法;)。确保 innerHTML 是可解析的。 (Wich 表示仅存在数值)。用我们的语言(荷兰语)解释会容易得多,这违反了规则:)。您解析值并用它们计算,如果然后放入另一个 div (innerHTML),它们会自动再次解释为字符串。
    • 是否可以将您的 HTML 添加到您的帖子中?
    • 这真的会让我有点困惑,问题还在于那行代码它们不再相互叠加。这个网站真的需要聊天功能
    • 好吧,试试这样的: In yourelse { counter.innerHTML += this.innerHTML; } 改成这个: else { var result = parseInt(counter.innerHTML);结果 += parseInt(this.innerHTML); this.innerHTML = 结果; }
    【解决方案3】:

    你可以试试

    解析函数。如果碰到无法识别的字符,解析将停止。如果解析在第一个符号处停止,则返回 NaN

    parseInt("1") = 1
    parseInt("1a") = 1
    parseInt("a1") = NaN
    

    类型改变。

    一元加号

    +"1" = 1
    +"1.231" = 1.231
    +"1a" = NaN
    +"a1" = NaN
    

    按位非

    ~~"1" = 1
    ~~"1.231" = 1
    ~~"a1" = 0
    ~~"1a" = 0
    ~~"a" = 0
    

    乘法运算符

    "1" * 1 = 1
    "1a" * 1 = NaN
    "a1" * 1 = NaN
    "a" * 1 = NaN
    

    【讨论】:

    • 请对您的答案添加一些解释。
    猜你喜欢
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多