用于创建标题并将文本放入其下方段落的循环

时间:2015-12-04 23:06:29

标签: javascript html

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相应地将新段落文本放在标题中,但它不起作用。我得到要显示的标题,但不是段落。

请帮忙! 谢谢!

1 个答案:

答案 0 :(得分:2)

如果未定义,您使用的是header变量(您应该将其替换为para),另外,您s中的getElementByTagName应该是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);
}