javascript - 无法将输入附加到 DOM
问题描述
我必须只使用 JS,而不是 HTML 来构建一个计算器。我正在为数字创建基本输入字段,但我似乎无法将它们附加到 DOM。我收到以下错误:
> Uncaught TypeError: Cannot read property 'append' of null.
这是我的代码:
var firstInput = document.createElement('input');
firstInput.setAttribute("type", "text");
firstInput.innerHTML = "";
document.body.append(firstInput);
澄清:有一个 HTML 文件,我正在处理一个链接到 HTML 的外部 Javascript 文件。但是,他们不允许我从 HTML 创建元素并使用 Javascript 获取它们。我只能使用 JS 创建元素。
我究竟做错了什么?
解决方案
当你的代码被执行时,body 不一定会被加载。在以任何方式使用它之前等待 DOM 准备好是一个很好的做法。
您的脚本应该放在 HTML 正文的最后。
(function() {
// The DOM will be available here
var firstInput = document.createElement('input');
firstInput.setAttribute("type", "text");
firstInput.innerHTML = "";
document.body.append(firstInput);
})();
该答案为您提供了有关其工作原理的更多详细信息。
推荐阅读
- apache-spark - 如何修复“使用 spark 创建 hive orc 表时权限被拒绝”?
- python - 如何识别元组列表中的部分元组匹配
- python - 打印整数的一部分
- litho - 当另一个组件执行操作时如何设置组件可见真或假
- jquery - 当输入为空或使用 jquery 的电子邮件格式无效时显示红色边框
- python - 无法从字典中引用使用“vars()[]”创建的变量
- vb.net - 清除先前使用数据源填充的组合框
- c# - 如何从 DateTime 中获取天、小时、分钟、秒作为小数?
- laravel - 如何过滤急切加载的类?
- python - 在 Django 中搜索姓名和姓氏