javascript - 在 javascript 中创建表单元素

标签 javascript forms appendchild createelement

我无法在 body 标记中创建表单元素并直接在 Javascript 中显示它。

这是我的代码:

document.addEventListener('load', function(event){
    var elemBody = document.getElementsByTagName('body');
    var elemForm = document.createElement('form');
});

我尝试过使用appendChild,但没有成功。

(我是法国人)

最佳答案

elemBody,如上所述,包含一个数组,该数组又包含一个元素,即 html 文档的单个 body 元素。调用 elemBody.appendChild 将导致错误,因为您尝试将 elemForm 添加到数组(使用未为数组定义的方法),而不是 DOM 元素。如果您按如下方式更新代码,您可能会取得更好的成功:

var elemBody = document.getElementsByTagName('body')[0];
var elemForm = document.createElement('form');
elemBody.appendChild(elemForm);

当然,如果不设置样式或向表单添加一些实际内容,您将无法从视觉上检测新表单的存在。

更新

这里比评论中更容易。如果您希望能够直观地看到添加的内容,请尝试以下操作:

var elemBody = document.getElementsByTagName('body')[0];
var elemForm = document.createElement('form');
elemForm.appendChild(document.createElement('textarea'));
elemBody.appendChild(elemForm);

更新2

这是一个完整的测试文件:

<html>
<head>
<script type="text/javascript">
function doit() {
  var elemBody = document.getElementsByTagName('body')[0];
  var elemForm = document.createElement('form');
  elemForm.appendChild(document.createElement('textarea'));
  elemBody.appendChild(elemForm);
}
</script>
</head>
<body onload="doit()"></body>
</html>

关于javascript - 在 javascript 中创建表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23476726/

相关文章:

javascript - 浏览器滚动如何在 DOM 中工作?

javascript - #each 完成后如何执行回调?

html - POST 未选中的 HTML 复选框

forms - 如何获取嵌套 formBuilder 组的值

php - UPDATE 查询有问题

java - 在java中追加子项后如何保存xml

javascript - $.get 在请求 URL 中发送原型(prototype)函数?

javascript - 无法两次推送到同一个数组

javascript - 为什么IE10说 `Object doesn' t支持属性或方法 'appendchild'`

javascript - 如何在 javascript 中读取 .dat 文件的内容?