<!doctype html>
<html lang="en">
<title>Movielist</title>
<meta charset="utf-8">
<script>
window.onload=function getNextShowing(movie)
{
var now = new Date().getTime();
for(var i=0; i < movie.showtimes.length; i++)
{
var showtime = getTimeFromString(movie.showtimes[i]);
if((showtime - now ) > 0)
{
return "Next showing of"+movie.title+" is "+movie.showtimes[i];
}
}
return null;
}
function getTimeFromString(timeString)
{
var theTime = new Date();
var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?)/);
theTime.setHours(parseInt(time[1]) + (time[3] ? 12 : 0));
theTime.setMinutes(parseInt(time[2]) || 0);
return theTime.getTime;
}
var movie1=
{
title:"Plan 9 from Outer Space",
genre:"Cult Classic",
rating:5,
showtimes:["3:00pm","7:00pm","11:00pm"]
};
var movie2=
{
title:"Forbidden Planet",
genre:"Classic Sci-fi",
rating:5,
showtimes:["5:00pm","9:00pm"]
};
var nextShowing = getNextShowing(movie1);
alert(nextShowing);
nextShowing = getNextShowing(movie2);
alert(nextShowing);
</script>
這段主要是把movie1及movie2的目前時間可選擇的影片並把播放時間顯示出來
問一下我想顯示出目前可以觀看影片的時間,不過輸出2個都是null,是哪邊判斷有問題呢??
第 28 行,少了小括號
return theTime.getTime();
除了 theTime.getTime()的問題之外
第7行
<pre class="c" name="code">window.onload=function getNextShowing(movie)
也不太合理,當onlonad事件發生的時候,事實上48~51行已經執行過了,所以會發生
getNextShowing is not defined
的錯誤,這也會造成你的script跑不出結果。
其實不綁onload,你的程式反而正確,但我想應該是真正完整的程式和dom有關,所以你必須要等dom load完,如果是這樣,反而是把48~51放入一個initd的funciton中,然後去綁onload事件。
http://jsfiddle.net/T2mXV/ 可參考這裡的修改過的,另外getNextShowing的return方式我有調整一下,應該比return null好
wordsmith 說的沒錯。所以