IE 和 FireFox 关于 js的兼容性

1、childNodes属性

<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
 </HEAD>
 <BODY>
  <ul>
  <li>111</li><li>222</li>
<li>333</li>
  </ul>
  <script>
    var ul=document.getElementsByTagName("ul")[0];
   var c = ul.childNodes;
   var li = ul.getElementsByTagName("li");
   for(var i=0;i<c.length;i++){
		alert(c[i].nodeType);
   }
   alert(c.length+":"+li.length);
   for(var i=0;i<li.length;i++){
		alert(li[i].nodeType);
   }  </script>
 </BODY>
</HTML>

上面的代码的结果是

IE:1、1、1、3:3、1、1、1  (1 element_node)
FF:3、1、1、3、1、3、6:3、1、1、1 (3 text_node)

从上面的结果上来看,在FF中用childNodes来取子节点,它会将每个节点后的空白(\n)当成一个text_node(<ul>、第二个<li>后和第三个<li>后的回车都被当成了空白),而IE不会,所以为了做到兼容,在取子节点,尤其是子节点的TagName都相同的情况下,尽量使用getElementsByTagName比较好。

firefox中js几个注意的地方:

  1. document.all.ID 不能用 ID.属性 也不能用。 必须写 document.getElementById(ID)
  2. 给元素大小赋值时必须加 px . 如$(’test’).width =80 没有效果。必须写成 $(’test’).width =80 +”px”;
js/兼容.txt · 最后更改: 2007/09/13 01:27 由 202.106.180.62
到顶部
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0 红麦软件 红麦软件