此代码应显示时间,如果是在中央时区的晚上8:00之后显示为红色,如果是在早上7:30之后显示为绿色。不幸的是,这是我第一次使用Javascript和我'我显然犯了一些错误。没有显示任何内容。任何人都可以帮我找到问题吗?
<script type="text/javascript">
var centralDate = getOffsetDate(360);
function getOffsetDate(offsetInMintues) {
var d = new Date();
d.setMinutes(d.getMinutes() + d.getTimezoneOffset() - offsetInMintues);
return d;
}
function GetClock(){
d = getOffsetDate();
nhour = d.getHours();
nmin = d.getMinutes();
if(nhour == 0) {ap = " AM";nhour = 12;}
else if(nhour <= 11) {ap = " AM";}
else if(nhour == 12) {ap = " PM";}
else if(nhour >= 13) {ap = " PM";nhour -= 12;}
if(nmin <= 9) {nmin = "0" +nmin;}
var h = centralDate.getHours();
var m = centralDate.getMinutes();
if (h >= 20 ||
h <7 ||
(h == 7 && m <= 30)) {
c="#FF0000"
}
else {c=#00FF00"}
document.getElementById('clockbox').innerHTML=""+nhour+":"+nmin+ap+"";
setTimeout("GetClock()", 1000);
}
<FONT COLOR=c>;
window.onload=GetClock;
</FONT>
</script>
<div id="clockbox"></div>
答案 0 :(得分:1)
你没有将任何内容传递到getOffsetDate()
内的GetClock
,这会影响所有数值计算。
(加上我在评论中提到的内容。)
(setTimeout
因我的理智而被评论出来。)
您实际上并未在任何地方更改颜色;你只需设置一个值,然后再也不做任何其他事情了。
另外,您的<script>
代码中包含HTML,但这不起作用。而是改变<font>
标签属性......虽然现在我们已经知道CSS,但实际上没有人真正使用字体标签,所以你可能希望这样做而不是为了你自己。
(我确实不想从getOffsetDate()
拨打GetClock
,但我不清楚你要做什么,所以我不知道。在小提琴中我按原样离开了它并传递了0分钟的偏移量。)
答案 1 :(得分:0)
你应该写下最后五行:
$("<div id='clockbox'></div>").css("color", "red").appendTo("body");
P上。 S.如果您不熟悉此代码,请告诉您这是一个流行的JavaScript库jQuery。您可以从jQuery.com下载它,并将其包含在您的页面中,就像任何其他JavaScript文件一样。