Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript document.createElement函数?_Javascript_Html - Fatal编程技术网

javascript document.createElement函数?

javascript document.createElement函数?,javascript,html,Javascript,Html,我有一个变量,其中包含3个标记名,它们之间用“,”字符分隔。我想使用.split()函数拆分它们,然后创建3个元素并将其附加到文档正文中 <head> <style> div { height:500px; width:500px; background:#F00; float:left} span{display:block; float:right} </style> <script type="text/javascript">

我有一个变量,其中包含3个标记名,它们之间用“,”字符分隔。我想使用.split()函数拆分它们,然后创建3个元素并将其附加到文档正文中

<head>
<style>
div { height:500px; width:500px; background:#F00; float:left}   
span{display:block; float:right}   
</style>

<script type="text/javascript">

var element= div,p,span;    
var j=element.split(',')

for(i=0;i<j.length;i++){            
    var crt=document.createElement(j[i])
}

document.body.append(crt)

</script>    
</head>    
<body>
</body>

div{height:500px;width:500px;background:#F00;float:left}
span{显示:块;浮点:右}
var元素=div,p,span;
var j=element.split(',')

对于(i=0;i而言,该代码似乎很好,除了两点:

  • var-element=div,p,span
    不是有效的语句,您应该使用换行引号()来创建字符串:
    var-element='div,p,span';

  • 您应该将语句
    document.body.append(crt)
    放入
    for
    循环中,这样每个元素都将被追加到

  • 试试这个

    for(i=0; i<j.length; i++)
    {            
        var crt = document.createElement(j[i]);
        document.body.append(crt);
    }
    

    for(i=0;i您的'element'变量需要是字符串。您需要使用appendChild()而不是append(),并且appendChild()调用应该在循环中:

    var element = "div,p,span";
    var j = element.split(',');
    var crt;
    
    for(var i = 0; i < j.length; i++) {
        crt = document.createElement(j[i]);
        document.body.appendChild(crt);
    }
    
    var element=“div,p,span”;
    var j=element.split(',');
    无功阴极射线管;
    对于(变量i=0;i

    其他人说了什么,加上你需要在加载时执行此操作:

    
    div{height:500px;width:500px;background:#F00;float:left}
    span{显示:块;浮点:右}
    变量元素=[“div”,“p”,“span”];
    window.onload=function(){
    对于(var crt,i=0,n=elements.length;i
    但是,执行此代码时,浏览器尚未解析
    body
    标记,因此应将此代码放在
    之后,或在加载DOM时运行它(
    onload
    事件或
    DOMContentLoaded
    (如果支持)

    您也可以在支持的位置使用(ES5,有很多垫片,也在我链接的MDN页面中):


    或者如果您正在使用任何支持库(jquery、下划线等)它们提供了等效的功能。

    请适当缩进您的代码。元素需要是字符串作为开始。最终结果应该是
    还是
    ?它不起作用,因为您的代码中有其他问题,例如
    var element=div,p,span;
    应该是一个用引号括起来的字符串。
    <head>
    <style>
    div { height:500px; width:500px; background:#F00; float:left}   
    span{display:block; float:right}   
    </style>
    
    <script type="text/javascript">
    
    var elements= ["div","p","span"];    
    
    window.onload=function() {
      for(var crt,i=0, n=elements.length;i<n;i++){            
        crt=document.createElement(elements[i])
        document.body.appendChild(crt)
      }
    }
    </script>    
    </head>    
    <body>
    </body>
    
    var tags = "div,p,span".split(",");
    
    for (var i=0, tag; tag = tags[i++];)
        document.body.appendChild(document.createElement(tag));
    
    var tags = "div,p,span".split(",");
    
    tags.forEach(function(tag) {
        document.body.appendChild(document.createElement(tag));
    });