当前位置: 代码迷 >> JavaScript >> javascript求解,该如何解决
  详细解决方案

javascript求解,该如何解决

热度:3050   发布时间:2013-02-26 00:00:00.0
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);
    };
};
  相关解决方案