(COPY)document.all和document.getElementById用法

document.all用法:

<html>  
  <body>  
    <!--   -->   
    <script>  
      var   str=""  
      for(i=0;i<document.all.length;i++)  
       {  
          str+=   i   +   document.all[i].tagName   +"\n"  
       }  
       alert(str)   
    </script>   
  </body>   
</html>   

   
弹出的提示是

  0HTML  
  1HEAD  
  2TITLE  
  3BODY  
  4!   
  5SCRIPT 

原来html、head、title、body这些标签是默认就有的,不管你写的代码里有没有。 

 

document.getElementById用法:

text1:
    <input name="textName1" type="text" id="textName2" />
<br>
  text2:
    <input name="textName2" type="text" id="textName1" />
<br>
  <input type="button" name="Submit" value="text1"  onclick=alert(document.getElementById('textName2').value) />
  <input type="button" name="Submit2" value="text2"  onclick=alert(document.getElementById('textName1').value) />

我在IE中测试了上面的代码,在第一个文本框中输入1,在第二个文本框中输入2,然后点下面的两个按钮,猜一下结果是什么?

我本意是按钮1返回第一个文本框的值,按钮2返回个文本框的值。

结果是两个按钮都返回了第一个文本框的值。

说明ie执行document.getElementById(elementName)的时候,返回的是第一个name或者id等于elementName的对象,并不是按照ID来查找的。

在fireFox中不存在这样的问题,fireFox执行document.getElementById(elementName)的时候只查找id等于elementName的对象,如果不存在则返回null。

可能IE是考虑的兼容性的问题才这么做的。

posted @ 2009-10-12 16:26  旭 日  阅读(558)  评论(0编辑  收藏  举报