【问题标题】:Trouble displaying code on screen无法在屏幕上显示代码
【发布时间】:2017-11-06 22:30:57
【问题描述】:

这对你们那里的程序员来说可能听起来很简单,但我似乎无法弄清楚。我正在制作一个将十进制数字转换为罗马数字的程序。我已经让核心代码工作了,但我似乎无法思考如何在屏幕上显示结果。我希望这样当用户在文本框中键入一个数字时,按下一个按钮,结果就会出现在另一个文本框中。感谢您的时间和帮助。

function convertToRoman(num) {
var romans = {
    M:  1000,
    CM: 900,
    D:  500,
    CD: 400,
    C:  100,
    XC: 90,
    L:  50,
    XL: 40,
    X:  10,
    IX: 9,
    V:  5,
    IV: 4,
    I:  1,
};

var result = '';

for (var key in romans) {
    if (num >= romans[key]) {
        result += key.repeat(Math.trunc(num / romans[key]));
        num -= romans[key] * Math.trunc(num / romans[key]);
    }
}

return result;

}

【问题讨论】:

  • 您的 HTML 在哪里?您将使用(也许)document.getElementById() 来获取对您的文本框的引用,并使用 .addEventListener()inputchange 事件添加处理程序,以便在用户在字段中键入时运行现有的 JS。

标签: javascript function for-loop if-statement


【解决方案1】:

如果你添加一个 div 元素并给它一个像“输出”这样的 id,你可以做这样的事情。

document.getElementById("output").innerHTML = result;

【讨论】:

    【解决方案2】:
    1. 您可以使用值得信赖的旧alert 功能。只需执行alert(convertToRoman(10))。把它放在<script> 标记或正文 onload 属性中
    2. 更高级更专业的调试,可以使用console.log。它起源于一个名为 Firebug 的旧 Firefox 插件,现在所有浏览器都支持它。只需输入console.log(convertToRoman(10)); 结果将打印到控制台,要查看它,请右键单击浏览器,打开检查文档并移至控制台选项卡,或者在 Chrome 中按 Ctrl+Shift+I

    【讨论】:

      【解决方案3】:

      您缺少将结果附加到 html 的部分。以下面的工作代码为例。

      function convertToRoman(num) {
        var romans = {
            M:  1000,
            CM: 900,
            D:  500,
            CD: 400,
            C:  100,
            XC: 90,
            L:  50,
            XL: 40,
            X:  10,
            IX: 9,
            V:  5,
            IV: 4,
            I:  1,
        };
      
        var result = '';
      
        for (var key in romans) {
            if (num >= romans[key]) {
                result += key.repeat(Math.trunc(num / romans[key]));
                num -= romans[key] * Math.trunc(num / romans[key]);
            }
        }
      
        document.getElementById('output').innerHTML = result;
      }
      
      convertToRoman(12345);
      <div> my result <span id="output"></span></div>

      【讨论】:

        猜你喜欢
        • 2015-09-05
        • 1970-01-01
        • 2016-09-19
        • 2013-09-30
        • 2017-02-16
        • 2016-10-20
        • 2020-04-06
        • 2021-03-04
        • 1970-01-01
        相关资源
        最近更新 更多