首页 > 解决方案 > textContent 属性未使用 javascript 更新

问题描述

我正在制作计算器应用程序作为 Odin 项目的一部分。我有一个执行所需计算的 javascript 函数:

function doCalc(arr) {
    //CHECK IF INPUT IS VALID. IF SO, PERFORM CALCULATION
    if (checkValid(arr)) {
        if (arr.length === 1)
            return arr;

        arr = getResultArr(arr, "/");
        arr = getResultArr(arr, "*");
        arr = getResultArr(arr, "+");
        arr = getResultArr(arr, "-");
        if (arr[0] == "Infinity")
            arr[0] = "ERROR: DIVISION BY 0";

        return (input = arr);
    }

    else {
        //THIS IS THE LINE GIVING TROUBLE
        inputText.textContent = "INVALID CALCULATION";
    }

}

该函数首先检查计算器中的输入是否有效。例如,输入“9++3”是无效的,因为两个加号在一起。如果它无效,它会转到“else”分支,然后应该更新元素(指的是 ap 标签)textContentinputText

但是, p 标签的文本从未真正更新。它保持不变。当我在 Chrome 调试器中放置一个断点时,该行执行得很好(当我单步执行“else”分支时),这很奇怪。此外,如果我更改代码以更改inputText元素的其他属性,它会起作用。例如,我可以将有问题的行更改为inputText.style.cssText = "background-color: blue;";,它会正常工作。但是,如果我尝试使用textContent, 甚至更改文本,innerText或者innerHTML它不起作用。

知道发生了什么吗?

编辑:只是补充一下,javascript文件被导入到我底部的html文件中,所以它是在创建DOM之后运行的。此外,该inputText元素工作得很好,包括textContent在代码的其他地方更新它。我也可以textContent在控制台中更新它就好了。

标签: javascripthtmlcss

解决方案


推荐阅读