如果用var aBtn=oDiv.getElementsByTagName('input')的话,假如页面没有加载完成的话,aBtn的值是为null的,所以用var aBtn = null作为全局变量,并且在onload事件里面为aBtn赋值,目的就是为了能够正确获取到对应的值。
当使用var aBtn = null,tab函数里面的aBtn指的是var oDiv=document.getElementById('div1');aBtn=oDiv.getElementsByTagName('input');也就是页面中input标签的列表。因为是虽然定义的全局变量是null,但是在onload事件里面已经为aBtn重新赋值了,因此此时的aBtn的值也已经变化为重新赋值后的值了。
jsp页面加载顺序是从上到下执行,使用var aBtn=oDiv.getElementsByTagName('input')会找不到input标签,window.onload是页面加载完成后执行的事件,所以在事件里赋值不会出现这种情况,至于aBtn我想的和楼上的差不多了