[JavaScript]“种类不一致”错误
能够正常运行,但是总是页面总是有错误:   种类不一致。 
 没有baidu到解决方法。 
 csdn上有篇类似的帖子,但似乎不是一回事。 
 哪位兄弟给看看下面的代码到底有什么问题。 
 谢谢!!   
 P.S.   程序可以直接运行。   
  <html   id= "html ">  
  <head   id= "head ">  
  <title   id= "title "> Introduction   to   the   DOM </title>    
  <script   id= "script ">    
 function   test(){ 
 append(      document.getElementsByTagName( "ol ")[0],    " <li> Mouse   trap. </li>  "   );   
 }   
 //Enhanced   Functions   for   Inserting   and   Appending   into   the   DOM 
 function   before(   parent,   before,   elem   )   { 
 //   Check   to   see   if   no   parent   node   was   provided 
 if   (   elem   ==   null   )   { 
 elem   =   before; 
 before   =   parent; 
 parent   =   before.parentNode; 
 } 
 //   Get   the   new   array   of   elements 
 var   elems   =   checkElem(   elem   ); 
 //   Move   through   the   array   backwards, 
 //   because   we 're   prepending   elements 
 for   (   var   i   =   elems.length   -   1;   i   > =   0;   i--   )   { 
 parent.insertBefore(   elems[i],   before   ); 
 } 
 }   
 function   append(   parent,   elem   )   { 
 //   Get   the   array   of   elements 
 var   elems   =   checkElem(   elem   ); 
 //   Append   them   all   to   the   element 
 for   (   var   i   =   0;   i    <=   elems.length;   i++   )   { 
 parent.appendChild(   elems[i]   ); 
 } 
 }   
 //Converting   an   Array   of   Mixed   DOM   Node/HTML   String   Arguments   into   a 
 //Pure   Array   of   DOM   Nodes 
 function   checkElem(a)   { 
 var   r   =   []; 
 //   Force   the   argument   into   an   array,   if   it   isn 't   already 
 if   (   a.constructor   !=   Array   )   a   =   [   a   ]; 
 for   (   var   i   =   0;   i    <   a.length;   i++   )   { 
 //   If   there 's   a   String 
 if   (   a[i].constructor   ==   String   )   { 
 //   Create   a   temporary   element   to   house   the   HTML 
 var   div   =   document.createElement( "div "); 
 //   Inject   the   HTML,   to   convert   it   into   a   DOM   structure 
 div.innerHTML   =   a[i]; 
 //   Extract   the   DOM   structure   back   out   of   the   temp   DIV 
 for   (   var   j   =   0;   j    <   div.childNodes.length;   j++   ) 
 r[r.length]   =   div.childNodes[j]; 
 }   else   if   (   a[i].length   )   {   //   If   it 's   an   array 
 //   Assume   that   it 's &n