我对此代码有疑问:
<script>
function timeCounter(){
public var endtime = [29700000, 32400000, 36000000, 38700000, 44100000, 46800000, 53100000];
public var currentTime = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds());
public var miliseconds = 1;
public var seconds = miliseconds * 1000;
public var minutes = seconds * 60;
public var hours = minutes * 60;
public var days = hours * 24;
public var years = days * 365;
public var numYears = Math.floor(diff / years);
public var numDays = Math.floor((diff % years) / days);
public var numHours = Math.floor((diff % days) / hours);
public var numMinutes = Math.floor((diff % hours) / minutes);
public var numSeconds = Math.round((diff % minutes) / seconds);
}
</script>
我希望在这样的表中调用它:
<tr>
<td> 08:15-09:00 </td>
<td>
<script>
document.getElementById("t01").innerHTML = numYears;
setInterval(countDown(endtime), 1000);
var diff = (document.getElementById("demo").innerHTML = endtime[0]); - currentTime;
document.write("Time left to next class: " (diff / 3600000); " hours and " (diff / 60000); " minutes.");
</script>
</td>
</tr>
我做错了什么?
答案 0 :(得分:0)
我不认为您在函数中定义的变量可以在该函数之外访问。在函数外部定义它们,然后像这样设置它们:
var globalVariable;
function setVariable(){
globalVariable = "value";
}
发布您收到的错误(如果有的话)也可能有用。也许这个函数永远不会被调用。
答案 1 :(得分:0)
在您的代码中,您有:
<script>
function timeCounter(){
public var endtime = [29700000, 32400000, 36000000, 38700000, 44100000, 46800000, 53100000];
public 是未来的保留字。在上面,这是一个语法错误。也许你的意思是:
var endtime = [29700000, 32400000, 36000000, 38700000, 44100000, 46800000, 53100000];
在 timeCounter 函数中创建一个变量,并在调用函数时为其赋予一个数组,而不是之前。
稍后你有:
document.getElementById("t01").innerHTML = numYears;
提供的标记中没有ID为“t01”的元素。
numYears 在 timeCounter 中创建,并且是该函数的本地。这里它将引发一个引用错误,因为它尚未在此代码的范围内定义。
然后你有:
setInterval(countDown(endtime), 1000);
调用函数 countDown ,向其传递 endtime 的值,该问题与 numYears 相同。结果传递给 setInterval ,它需要一个函数对象或一些可以执行的代码。
您尚未显示 countDown 的代码或显示它返回的内容,因此无法说出结果是什么。
代码中有很多错误。查看控制台,修复它们。修复上述问题是一个开始。