我正在尝试更改网站上时钟的颜色。我的代码没有用,我想知道我犯了什么错误

时间:2011-11-05 20:05:12

标签: javascript colors clock

此代码应显示时间,如果是在中央时区的晚上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>

2 个答案:

答案 0 :(得分:1)

你没有将任何内容传递到getOffsetDate()内的GetClock,这会影响所有数值计算。

(加上我在评论中提到的内容。)

See the fiddle

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文件一样。