我正在制作日历,用户可以点击图片前往上一年。 我有一个名为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>
答案 0 :(得分:0)
<button onClick="dec()">test</button>
<script>
var currentDate = new Date();
var currentYear = currentDate.getFullYear();
function dec() {
currentYear--;
alert(currentYear);
}
</script>
答案 1 :(得分:0)
在定义和使用全局变量时,需要注意以下几点:
var currentDate;
声明不得具有任何功能。如果它在全局范围内声明,则它的值将持续网页的持续时间,因此您可以在该网页视图的生命周期内随时随地访问它。还有其他一些方法来声明它会导致它进入全局范围,但这是最简单的。window.
前缀(例如window.currentYear = 2011;
)访问变量来强制变量进入全局范围,但您不必这样做。如果这些似乎都不适用于您的特定情况,那么您没有向我们展示足够的代码供我们查看实际情况,因为如果通用代码位于全局范围内,则应该可以正常工作。
答案 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>