Javascript:在函数内部更改变量?

时间:2014-04-16 19:31:53

标签: javascript jquery

如何更改函数内的变量?我试图根据一个预先指定的值归档简单的切换功能。这里的代码和http://jsfiddle.net/StartStep/jLQyx/

<p onclick="testit()">CLick</p>
<p id="value">Value</p>   


var valuediv = document.getElementById("value");

function testit() {
    if (c == 1) {
        var c = 1;
        valuediv.innerHTML = c
    } else {
        var c = 0;
        valuediv.innerHTML = c
    }
}

3 个答案:

答案 0 :(得分:3)

在这里查看 JavaScript uses Global Variables 的方式。

var valuediv = document.getElementById("value");
var c = 1;

function testit() {
    if(c === 1) 
    {
        c = 0; 
        valuediv.innerHTML = c
    } else {
        c = 1; 
        valuediv.innerHTML = c
    }
}

这会修复您的代码。你正在创造新的&#34; c&#34; if / else块中的变量,因为它们带有&#34; var&#34;。

小提琴:http://jsfiddle.net/jLQyx/2/

答案 1 :(得分:1)

删除var关键字并撰写c = 1&amp; c = 0。您在函数内重新创建变量c,而不是更新全局c变量。

var valuediv = document.getElementById("value");
var c = 1;

function testit() {
    if (c == 1) {
        c = 0;
        valuediv.innerHTML = c;
    } else {
        c = 1;
        valuediv.innerHTML = c;
    }
}

http://jsfiddle.net/jLQyx/1/

答案 2 :(得分:1)

无需使用条件:

var valuediv = document.getElementById("value"),
    c = 1;
function testit() {
    c = +!c;
    valuediv.innerHTML = c
}

Demo