函数里面的倒数第6~7行里为什么未能添加到definitionlist元素中?

window.onload = function(){
var abbreviations = document.getElementsByTagName("abbr");
if (abbreviations.length < 1) return false;
var definitionlist = document.createElement("dl");
for(var i = 0;i < abbreviations.length; i++){
//create
var definitionlist_dt = document.createElement("dt");
var definitionlist_dd = document.createElement("dd");
//distribution
var key = abbreviations[i].lastChild.nodeValue;
var dtitle_text = document.createTextNode(key);
definitionlist_dt.appendChild(dtitle_text);
//alert(definitionlist_dt.innerHTML);

    var definition = abbreviations[i].getAttribute("title");
    var ddesc_text = document.createTextNode(definition);
    definitionlist_dd.appendChild(ddesc_text);
    //alert(definitionlist_dd.innerHTML);
    definitionlist.appendChild(definitionlist_dt);
    definitionlist.appendChild(definitionlist_dd);
    alert(definitionlist.length);
    }
var text_top = document.getElementsById("h1");
document.getElementsByTagName("body").insertBefore(definitionlist,text_top);    

}

alert(definitionlist.length);definitionlist没有length属性,
document.getElementsById("h1");getElementById()
getElementsByTagName("body")得到的是个列表,

definitionlist应该是有元素了,查看definitionlist.children.length

不是那几行代码的问题,是最后那行,document.getElementsByTagName("body")得到的是数组,没有insertBefore方法

         document.getElementsByTagName("body")[0].insertBefore(definitionlist, text_top);