2016-11-15 52 views
-2

我是JavaScript的新手。所以,我试图解决一个练习 - 宣布电影放映时间。我已经检查过它有什么问题,但我什么也没找到。当我打开index.html文件时,什么也没有发生。这里是我的代码:JavaScript。提醒字符串

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Cinema</title> 
    <script src="cinema.js"></script> 
</head> 
<body> 

</body> 
</html> 

cinema.js

var movie1={ 
    name: "Star Wars: Force Awakens", 
    showtimes: ["3:00pm","7:00pm","11:00pm"], 
    genre: "Cult Classic", 
    rating: 2 
}; 
var movie2={ 
    name: "Doctor Strange", 
    showtimes: ["5:00pm","9:00pm"], 
    genre: "Action", 
    rating: 5 
}; 

window.onload = function(){ 
    var nextShowing=getNextShowing(movie1); 
    alert(nextShowing); 
    nextShowing=getNextShowing(movie2); 
    alert(nextShowing); 

} 
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.name+" is "+movie.showtimes[i]; 
    } 
} 
    return null; 
} 

function getTimeFromString(timeString){ 
    var theTime = new Date(); 
    var time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?) /); 
    theTime.setHours(parselnt(time[1]) +(time[3] ? 12 : 0)); 
    theTime.setMinutes(parseInt(time[2])|| 0); 
    return theTime.getTime(); 
} 

凡可能是一个问题?

UPD:

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.name+" 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(); 
} 

仍然没有任何反应

+0

检查parseInt' – prasanth

+0

的'的网页拼音,浏览器的开发者工具控制台应该始终处于调试 –

回答

1
  1. parseInt函数名称不正确。请用parseInt替换parselnt
  2. 匹配模式不正确。这里是更新一个

    var time = timeString.match(/(\d+)(?::)(\d+)(am|pm)/); 
    
+0

非常感谢你的第一步!这有帮助! – Falvun

0

你在你的parseInt函数(您有它写成parselnt)的拼写有错误。

随着您继续学习Javascript,您的第一个调试端口应该是打开浏览器的开发工具/控制台。

例如,在Google Chrome中,您可以通过按Ctrl + Shift + i来完成此操作。

控制台应提供有关您的javascript遇到的任何运行时错误的详细信息,这将是您诊断问题的第一步。

0

我可以在这里看到一个错字theTime.setHours(parselnt(time[1]) +(time[3] ? 12 : 0));它应该是parseInt