2015-12-04 20 views
2
function newHeader (header) { 
var head = document.createElement('h'+ header); 
var hText = document.createTextNode('text for h'+ header); 
head.appendChild(hText); 
document.body.appendChild(head); 
} 

function newPara (para) { 
var newP = document.createElement('p'); 
var newPText = document.createTextNode("text for p" + para); 
newP.appendChild(newPText); 
var intoH = document.getElementByTagName('h' + header); 
intoH.item(0).appendChild(newP); 
} 

for (i = 1; i <= 6; i++) { 
newHeader(i); 
} 
for (i = 1; i <= 6; i++) { 
newPara(i); 
} 

我在做什麼錯? 我想要動態地創建標題並將文本放置在文本中。我試圖使用item()來appendChild將相應的新段落文本置於標題內,但它不起作用。我得到的標題顯示,但不是段落。循環用於創建標題並將文本放置在它們下面的段落中

請幫忙! 謝謝!

回答

2

您使用header變量沒有定義的時候(你應該para取代它),你也錯過sgetElementByTagName應該getElementsByTagName,這將返回元素的數組,因此您可以使用[0]指定第一,而不是item(0)

document.getElementsByTagName('h' + para)[0]; 

希望這有助於。


function newHeader (header) { 
 
    var head = document.createElement('h'+ header); 
 
    var hText = document.createTextNode('text for h'+ header); 
 
    head.appendChild(hText); 
 
    document.body.appendChild(head); 
 
} 
 

 
function newPara (para) { 
 
    var newP = document.createElement('p'); 
 
    var newPText = document.createTextNode("text for p" + para); 
 
    newP.appendChild(newPText); 
 
    var intoH = document.getElementsByTagName('h' + para)[0]; 
 
    intoH.appendChild(newP); 
 
} 
 

 
for (i = 1; i <= 6; i++) { 
 
    newHeader(i); 
 
} 
 
for (i = 1; i <= 6; i++) { 
 
    newPara(i); 
 
}

+0

,我會定義它,因爲,它在功能參數的名稱?我很困惑 – Onion

+0

哇。你真棒謝謝你!但你怎麼知道在那裏放置「+ para」,爲什麼?你能推薦任何用於DOM操作的好書嗎? – Onion

+0

不客氣的兄弟,檢測這種錯誤,你必須檢查瀏覽器開發者控制檯,因爲這本書我沒有一個很好的建議:(,好運氣。 –

相關問題