childNodes的问题
(创建时间:2010年09月25日 18:33:00)
Jangogo : 

有以下结构的HTML:

<ul id="MyList">
   <li>listitem1</li>
   <li>listitem2</li>
   <li>listitem2</li>
</ul>

在IE9之前的IE中,$('MyList').childNodes[0] 取得的是 listitem1 这个 对象。

但是在IE9 和 其他浏览器中,取得的childNodes[0] 却是是一个 [Object Text] , 而不是 listItem1 这个元素。

原因是因为 其他浏览器和IE9认为 标签之间的非HTML字符(如空格、TAB、回车或者换行等) 会变成一个Text对象,如果HTML元素标签之间没有任何字符才会和上述的情况一致:

<ul id="MyList"><li>listitem1</li><li>listitem2</li><li>listitem2</li></ul>

JS为了判断它取得是到底是否是listitem,可以用以下方法:

var UL=document.getElementById("MyList");
  var li=UL.childNodes[0];
  var s=li.innerHTML;
  while(!s){
     UL.removeChild(li);
     delete li;
     li=UL.childNodes[0];
     s=li.innerHTML;
  }
文档中心