js局部变量改变全局变量

 <!doctype html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(function(){
    var numb=1;
    $(".choose-more a").click(function(){
        alert(numb);
        numb=numb+1;
     loadTagload(numb);
    });
});

function loadTagload(numb) {
        if(numb==3){
            numb=0;
        }
} 
</script>
</head>
<body >
     <div class="choose-more">
     <a href="javascript:void(0);">click-click</a>
     </div>
</body>
</html>

为什么当numb=3的时候numb不能置为零啊,怎么才能置为零呢

你无法改变传递过来的参数值,这个numb被认为是 loadTagload(numb)中的参数,换个名字

<!DOCTYPE html>




$(function(){ var numb=1; function loadTagload() { if(numb==3){ numb=0; } } $(".choose-more a").click(function(){ alert(numb); numb=numb+1; loadTagload(); }); });



如果非要这样,那就把
{ if(numb==3){ numb=0; }
改成
{ if(numb==3){ window.numb=0; }

不过还是建议把
loadTagload的参数名换一个

numb是值引用,改为对象就可以更改了

 $(function(){
    var numb={index:1};
    $(".choose-more a").click(function(){
        alert(numb.index);
        numb.index=numb.index+1;
     loadTagload(numb);
    });
});

function loadTagload(numb) {
        if(numb.index==3){
            numb.index=0;
        }
}