首页 > 解决方案 > JavaScript:innerHTML 输出未定义,尽管 console.log 输出正确的值

问题描述

我正在尝试在 JS 中制作一个计算器应用程序,并且正在努力使用正弦和余弦函数。前面的线

document.getElementByID("screenPar").innerHTML = result;

console.log(result);

,并在控制台中显示正确的值,但是在计算器的屏幕上显示未定义。我的功能:

function calcSin(){
    try{                                                    //Checks for syntax errors
        if(calcString[calcString.length-1] == "+" || calcString[calcString.length-1] == "-" || calcString[calcString.length-1] == "*" || calcString[calcString.length-1] == "/"){
            throw "Syntax Error"
        }
    }
    catch(err){
        document.getElementById("screenPar").innerHTML = err;
        return 1;
    }
    if(calcString[calcString.length-1] == "$"){             //If last character in string is '$', clears screen
        clearScreen();
        document.getElementById("screenPar").style.color = "black";
    }
    else{
        var evalRes = eval(calcString);
        console.log(evalRes + typeof evalRes);
        var result = Math.round(Math.sin(evalRes));
        console.log(result + typeof result);
        clearScreen();
        console.log(result);
        document.getElementById("screenPar").innerHTML = result;
    }
}

calcString 是输入表达式的字符串,例如“3*4*5”。控制台输出正确的值,但 innerHTML 将 undefined 放在段落中。我将代码上传到了一个免费的托管网站:brokenCalculator。我错过了什么?

标签: javascriptundefinedinnerhtml

解决方案


您显示的功能很好。其他东西将screenPar值替换为undefined

在此处输入图像描述

PS 使用.textContent而不是,.innerHTML除非您希望将文本添加为​​ HTML 代码。


推荐阅读