javascript document.createElement函数?

时间:2012-03-23 10:00:43

标签: 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">

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>

5 个答案:

答案 0 :(得分:5)

你的'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);
}

http://jsfiddle.net/infernalbadger/wEBqY/1

答案 1 :(得分:1)

这个代码似乎很好,除了2分:

  1. var element = div,p,span不是有效的陈述,您应该用引号()来创建字符串:var element = 'div,p,span';

  2. 您应将document.body.append(crt)语句放在for循环中,以便每个元素都附加到<body>

答案 2 :(得分:1)

试试这个

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

答案 3 :(得分:1)

其他人说你需要加载DEMO

<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>

答案 4 :(得分:0)

var tags = "div,p,span".split(",");

for (var i=0, tag; tag = tags[i++];)
    document.body.appendChild(document.createElement(tag));

但是,当您执行此代码时,浏览器尚未解析body标记,因此您应将此代码放在<body>之后或在加载DOM时运行它({ {1}}事件或onload(如果支持)。

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

DOMContentLoaded

或者,如果您使用任何支持库(jquery,下划线等),它们提供相同的功能。