Javascript代码在函数外部运行,但在函数内部运行时不运行

时间:2017-07-16 16:06:32

标签: javascript

<p id="color" >This paragraph may change color </p>
<input type="button" value="Change color" onclick="change()">

<script type="text/javascript">
var colors=["red","blue","green","yellow"];
var changed=0;

function change(){
        document.getElementById('color').style.color=colors[changed]; 
        changed=changed+1;
    }
</script>

这会在点击时改变颜色,但当两个变量保留在函数内部时,它不起作用......有人可以向我解释为什么吗?

2 个答案:

答案 0 :(得分:0)

如果将这些变量放入函数中,它们将在函数启动时创建,并在完成后删除。所以,&#34;改变了#34;永远是0。

答案 1 :(得分:0)

&#13;
&#13;
function change(){

    var colors=["red","blue","green","yellow"];
    var changed=0;
    console.log(changed);
    document.getElementById('color').style.color=colors[changed]; 
    changed=changed+1;
    console.log(changed);
}
&#13;
<p id="color" >This paragraph may change color </p>
<input type="button" value="Change color" onclick="change()">
&#13;
&#13;
&#13;

它会改变颜色但只改变一次,这是因为每次调用changedchange()都会初始化为0,所以每当它变为document.getElementById('color').style.color=colors[0]并且颜色变为红色但不会变为&#39 ; t再次改变..