问答详情
源自:9-16 创建元素节点createElement

document.body和document.getElementByTagName("body")区别是什么?

JavaScript进阶篇9-16这一节的练习中,要在body中调用函数创建一个链接。在使用appendChild()方法往body节点下面添加子节点时,用getElementByTagName("body")获取父节点body,然后再调用appendChild()时,会报错:undefined function;

    var main = document.getElementsByTagName("body");
    var a = document.createElement("a");
    a.href = url;
    a.innerHTML = text;
    a.style.color = "red";
    main.appendChild(a);

使用如下代码就没问题:

    var main = document.body;
    var a = document.createElement("a");
    a.href = url;
    a.innerHTML = text;
    a.style.color = "red";
    main.appendChild(a);

请问,为什么不能用document.getElementByTagName("body")获取父节点呢?

提问者:Collus 2016-06-05 17:17

个回答

  • 糕冷丶薯片
    2016-06-06 18:42:12
    已采纳

    document.getElementsByTagName("body")[0]少写了s,虽然只有一个。但是也要写[0]

  • 当爱随风
    2016-06-05 18:09:06

    我觉得是因为body是比较大的元素节点,所以不能用 document.getElementsByTagName 去获取他,规定只能用document.body获取,