0

好的。我制作了一个计算 2 的幂的程序。我有 html 代码。但我先为你描述一下。有一个 id='inputin' 的输入,下面有一个按钮。在输入中你写一个数字。这个数字将是 2 的指数,按下按钮后会出现一个带有结果的 console.log 窗口

这里的html:

<div id='main'>
    <input type="number" name="power2" placeholder='Enter the power' id='inputin'><br/>
    <button id="submit" onclick="binaryS()">Do it!</button>

    </div>

和javascript:

binaryS = function() {
x = document.getElementById("inputin").value;
y=1;
for(i=1;i<=x;i++) {
    y=y*2;
}
console.log (y);
};

为什么它不起作用?有什么帮助吗?如果您可以建议而不是丑陋的 console.log 窗口,我如何将它显示在页面某处的新 div 中?谢谢

4

3 回答 3

7

你的 JavaScript 应该是:

function binaryS() {
   var x = document.getElementById("inputin").value;
   document.getElementById("outputValue").innerHTML = Math.pow(2,x);
}

将以下内容放在页面上的某处以进行显示:

<div id="outputValue">Result</div> 
于 2013-06-28T19:31:05.257 回答
1

试试这个功能:

function nearestPow2(){
  return Math.pow(2, Math.round(Math.log(document.getElementById("inputin").value;) / Math.log(2))); 
}

参考:http ://weblog.bocoup.com/find-the-closest-power-of-2-with-javascript/

于 2013-06-28T19:31:41.470 回答
0

无需详细说明,您的代码就可以正常工作。我制作了一个 html 页面来演示它:

<html>
    <head>
        <script type="application/x-javascript">
            binaryS = function() {
                x = document.getElementById("inputin").value;
                y=1;
                for(i=1;i<=x;i++) {
                    y=y*2;
                }
                document.getElementById('result').innerHTML = y
            };
        </script>
    </head>
    <body>
        <div id='main'>
            <input type="number" name="power2" placeholder='Enter the power' id='inputin'><br/>
            <button id="submit" onclick="binaryS()">Do it!</button>
        </div>
        <div id="result" ></div>
    </body>
</html>

我还建议您使用 Math.pow 而不是自定义数学计算:

Math.pow( 2, parseInt(document.getElementById("inputin").value));
于 2013-06-28T19:36:35.523 回答