2016-11-15 11 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. Пожалуйста, замените parselnt на parseInt
  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.