2012-03-23 45 views
1

我有一個變量,它包含3個用「,」字符分隔的標籤名稱。我想用.split()函數將它們分開,然後創建並追加3個元素到文檔主體。javascript document.createElement函數?

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

請適當縮進您的代碼 – Tom 2012-03-23 10:01:42

+3

元素需要是一個字符串的開始。 – 2012-03-23 10:03:53

+0

是最終結果應該是'

'或'​​'? – Alnitak 2012-03-23 10:06:39

回答

4

你的 '元素' 變量必須是一個字符串。您需要使用的appendChild(),而不是追加(),以及使用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

此代碼看起來很好,但2點:

  1. var element = div,p,span是不是一個有效的語句,你shoudl包報價()創建一個字符串:var element = 'div,p,span';

  2. 您應該將document.body.append(crt)語句放入您的for循環中,以便每個元素都將追加到<body>

1

試試這個

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

無法正常工作 – Carlos 2012-03-23 10:06:49

+0

這不起作用,因爲您的代碼中存在其他問題,例如'var element = div,p,span;'應該是用引號括起來的字符串。 – slash197 2012-03-23 10:08:59

1

什麼人說PLUS你需要這樣做的onload 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> 
0
var tags = "div,p,span".split(","); 

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

然而,body標籤還沒有被瀏覽器,當你執行這個代碼解析的,所以你應該在0123之後把這個代碼或在裝入DOM時運行它(onload事件或DOMContentLoaded如果支持)。

您也可以使用forEach支持地方(ES5,有大量的墊片,也是在MDN頁我聯繫):

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

tags.forEach(function(tag) { 
    document.body.appendChild(document.createElement(tag)); 
}); 

或者,如果你使用任何支持庫(jQuery的,下劃線等),它們提供等同的功能。

相關問題