私はこのコードを作成しました:
var foo=document.createElement("div");
var childs=foo.getElementsByTagName("*");
console.log(childs.length);//0 OK
var a=document.createElement("a");
foo.appendChild(a);
console.log(childs.length);//1 WTF?
フィドル: http://jsfiddle.net/RL54Z/3/
childs=foo.getElementsByTagName("*");
5行目から6行目までは書かなくていいのでchilds.length
更新です。
どうしてですか?