我收到以下错误:
Type Issue
'undefined' is not an object (evaluating 'commands.appendChild')
在以下行中:
commands.appendChild(inputConfirm);
commands
来自
var commands = document.forms['commands'];
这里没有错误,所以我相信commands
是一个有效的表单对象。 inputConfirm
来自
var inputConfirm = document.createElement('input');
这里也没有错误,所以它也应该是有效的。我还设置了inputConfirm
的一些属性而没有错误。
可能是什么原因?我很无能......
编辑:脚本正在document.onload
事件中执行。请参阅下面的确认答案
答案 0 :(得分:1)
document.forms
是一个包含页面形式的数组。数组索引必须是正数,因此document.forms[0]
有效,document.forms['commands']
不是。它引用了一个未定义的索引,因此结果在逻辑上是undefined
。使用document.getElementById()
,assumind'命令'是id:
var form = document.getElementById('commands');
form.appendChild(...);
<强> EDITED 强>
确保在执行此代码时元素存在(我的意思是,DOM已准备就绪)。如果您将此代码放在<script>
标记或<head>
中的外部文件中,但您还没有将其包裹在window.onload
或document.DOMContentLoaded
事件中我会发现document.getElementById
会返回null
。
为避免这种情况,如上所述,将代码放在任何事件的事件处理程序中,或者只是将</body>
结束标记。{/ p>