javascript - 变量分配给 getElementById,不起作用

标签 javascript dom getelementbyid

我试过在 stackoverflow 上查找,但找不到与我完全相同的问题 - 我确信这个问题很容易解决,但不知何故......它不起作用。

我有一些输入,将以计算器格式进行加/乘/减/除等。 我想要的是通过在我的功能 block 外部声明变量来删除对 getElementById 的不必要引用(我不想要任何花哨的 multiple-getElementById 赋值)。

我的 Javascript 如下:

//Declarations: designed to minimze calls to document.getElementByID
    var number1 = document.getElementById("num1");
    var number2 = document.getElementById("num2");
    var numAnswer = document.getElementById("answer");

    //Add together two numbers
    function add()
    {
        numAnswer.value = parseFloat(number1.value) + parseFloat(number2.value);
    }

这让我发疯 - 如果我取出变量并只使用普通的旧 document.getElementById,一切正常。这应该很容易,但就是行不通。我检查了拼写,一切似乎都没有问题 - 是不是我遗漏了什么?

最佳答案

如果您在问题中显示的脚本出现在页面源中的元素之后,这将起作用。否则浏览器尚未解析这些元素,因此无法通过 ID 找到它们。

让它工作的另一种方法是在 onload 或文档就绪处理程序中进行分配,因为到 onload 或文档就绪发生时 < em>所有元素都可以访问,无论它们在页面源代码中的什么位置。

关于javascript - 变量分配给 getElementById,不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7342163/

相关文章:

javascript - 在 Vue.js 中添加外部处理的元素?

javascript - 如何在 document.getElementById 中使用变量

javascript - 如何在Javascript中隐藏按钮?

javascript - 只能在浏览器中运行的包在服务器端渲染中出现错误

javascript - 如何在开发中禁用 Meteor JS 中的热代码推送?

node.js 在 POST 请求上刷新 DOM

javascript - 如何用 Jest 调用 zendesk 函数

javascript - 如何在 Nodejs 中使用 document.getElementById()

android - Uncaught ReferenceError : getElementById is not defined at null:1

Javascript Array sort() 无法正确排序字符串数组