Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。
                        
                    
                
            
        
            
        
                
                    
                
            
                
                    想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
                
                    6年前关闭。
            
        

    

我无法在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>

10-05 22:37
查看更多