更新变量值javascript

时间:2012-03-24 22:28:42

标签: javascript dhtml

我正在制作日历,用户可以点击图片前往上一年。 我有一个名为currentYear的全局变量,它正在整个程序中使用。

我的问题是: 一旦用户点击该图像,我该如何更改(更新)其值?使用我的代码,它确实会更改,但不会在其他语句中更新。

    <button onClick="dec()">test</button>
    <script> 
    var currentDate = new Date();
    var currentYear = currentDate.getFullYear();
    function dec() { 
    currentYear--; 
    }​
    document.write(currentYear); // outside the function 
    </script>

3 个答案:

答案 0 :(得分:0)

seems to work

<button onClick="dec()">test</button>
<script>

    var currentDate = new Date();
    var currentYear = currentDate.getFullYear();

    function dec() {
        currentYear--;
        alert(currentYear);
    }​

</script>

答案 1 :(得分:0)

在定义和使用全局变量时,需要注意以下几点:

  1. 变量应在全局范围内声明。这意味着var currentDate;声明不得具有任何功能。如果它在全局范围内声明,则它的值将持续网页的持续时间,因此您可以在该网页视图的生命周期内随时随地访问它。还有其他一些方法来声明它会导致它进入全局范围,但这是最简单的。
  2. 在您要使用全局变量的作用域中,必须没有其他具有相同名称的变量。这意味着没有该名称的局部变量,并且该名称的函数参数不会作为同名的冲突变量优先,并覆盖对该名称的访问权。
  3. 如果所有其他方法都失败了,您可以通过使用window.前缀(例如window.currentYear = 2011;)访问变量来强制变量进入全局范围,但您不必这样做。
  4. 如果这些似乎都不适用于您的特定情况,那么您没有向我们展示足够的代码供我们查看实际情况,因为如果通用代码位于全局范围内,则应该可以正常工作。

答案 2 :(得分:0)

我找到了一种方法,如果你对此感兴趣,我就是这样做的:

    <html>
    <body>
    <div id="llo"></div>
    </body>
    <script>
    var val = 2012;
    var id;
    var counter = 0 ;
    function decrementYear(){
    id="laila"+counter;
    counter=counter+1;
    val=val+1;
    document.getElementById(id).style.visibility='hidden';
    str="<table id='laila"+(counter)+"' border='1'><tr><td>"+(val)+"</td><td onclick='decrementYear()'>clickHere</td></tr></table>";
    document.getElementById("llo").innerHTML = str;
    }
    str="<table id='laila"+(counter)+"' border='1'><tr><td>"+(val)+"</td><td   onclick='decrementYear()'>clickHere</td></tr></table>";
    document.getElementById("llo").innerHTML = str;
    </script>
    </html>