日期:2014-05-16  浏览次数:20352 次

javascript求解

<script>
window.onload=function ()
{
    var aBtn=document.getElementsByTagName('input');
    var oDiv=document.getElementsByClassName('div1');
    var i;
    for(i=0;i<aBtn.length;i++)
    {
        aBtn[i].index = i;
        //下面要注意
        aBtn[i].onclick=(function(_i){
            return function (){
                oDiv[_i].style.display='block';
            }
        })(i);
    };
};
</script>
javascript

------解决方案--------------------
匿名函数立即执行 
解决闭包的问题
防止oDiv[_i]中的_i为i最后的值+1
------解决方案--------------------

window.onload=function (){
    var aBtn=document.getElementsByTagName('input');
    var oDiv=document.getElementsByClassName('div1');    
    for(var i=0;i<aBtn.length;i++){
        aBtn[i].index = i;
        //下面要注意
        aBtn[i].onclick=(function(_i){
            return function (){
//调用hideAll
hideAll();
                oDiv[_i].style.display='block';
            }
        })(i);
    };
};
//隐藏所有
function hideAll(){
    var oDiv=document.getElementsByClassName('div1');
for(var i = 0 ; i < oDiv.length ; ++i){
oDiv[i].style.display='none';
}
}

------解决方案--------------------
window.onload=function ()
{
    var aBtn=document.getElementsByTagName('input');
    var oDiv=document.getElementsByClassName('div1');
    var i;
    for(i=0;i<aBtn.length;i++)
    {
        aBtn[i].index = i;
        //下面要注意
         
        aBtn[i].onclick=(function(_i){
            return function (){
for(var j=0; j<oDiv.length;++j){
oDiv[j].style.display='none';
}

                oDiv[_i].style.display='block';
            }
        })(i);
    };
};