<input type=button value=确定 name=aaa onclick="alert(this);alert(document.getElementsByname('aaa')">
这句 <input type=button>会产生两个对象,一个是this的当前对象是html的input元素对象
一个是 <input type=button>标签创建的dom对象:button ---------------button只是特殊的input,你可以alert(this.name) 看看, 就会是aaa而你的 alert(document.getElementsByname('aaa')" 也只是获取这个button的另一种方法从你的代码来看,没有生成新的 input ,只是获取对象方法的不同

解决方案 »

  1.   

    再lz说的上下文中,this和getElementById是两种不同的过去input元素的方法。当然如果在其他上下文环境中,this和getElementById是两种截然不同的。
      

  2.   

    我他妈的不干了,妈的,一个人说一个样,我操他妈的w3c出了一个JB的dom
      

  3.   

    LZ你对DOM根本不了解,不要先怪W3C,是你自己没搞清楚本质
    你这里的this是指本身,而getElementsByName返回的不可能是DOM对象而是一个只读数组
      

  4.   

    楼主先不要着急!你需要了解thisthis,始终指向调用它的对象!
      

  5.   

    this是js里面最复杂的问题之一,这个弄懂就可以到处吹嘘了,哪有那么简单就能搞懂的,没有做过真实项目是不会弄清楚的,将理论跟世界结合起来,而且也没必要分的那么清楚,有一样精通就好,何必要样样都懂呢