Я пытаюсь создать простую демонстрацию, которая извлекает сеансы кинотеатра на основе ввода данного почтового индекса. Представления театра вложены в объект объекта фильма, поэтому я запускаю цикл for внутри каждого цикла, который анализирует JSON. Я также использую функцию timeConvert, чтобы превратить метку времени в США в 12 часов.Ошибка при добавлении объекта
В настоящее время, это выглядит примерно так:
for (var j=0; j<movie.showtimes.length; j++) {
listing += '<li class="times-and-places">
<div class="movie-theater">'
+ movie.showtimes[j].theatre.name
+ '</div><div class="movie-time"><li>'
+ timeConvert(movie.showtimes[j].dateTime.slice(11,16))
+ '</li></div></li>';
}
Это прекрасно работает, но он возвращает другой элемент для каждого кинотеатра ShowTime с кинотеатром в нем, который выглядит немного громоздким. API, который я использую, не сочетает сеансы шоу в театре, и для каждого шоу есть другая запись. Я в основном реплицирую это в HTML. Так что если фильм играет кучу раз, он будет показывать:
MoviePlace1 1:30PM MoviePlace1 1:45PM MoviePlace1 2:00PM
Я хотел бы быть в состоянии объединить расписание сеансов читать:
MoviePlace1 1:30PM 1:45PM 2:00PM
Фильм API присваивает идентификатор каждый кинотеатр, поэтому я попытался написать условное условие if-else внутри цикла for.
for (var j=0; j<movie.showtimes.length; j++) {
tList.push(movie.showtimes[j].theatre.id);
var thingToFind = $(this).prev().find('.movie-time');
var mTime = movie.showtimes[j].dateTime.slice(11,16);
var mTimeConverted = timeConvert(mTime).toString();
if (tList[j] != tList[(j-1)] || tList[(j-1)] === null) {
listing += '<li class="times-and-places">
<div class="movie-theater">'
+ movie.showtimes[j].theatre.name
+ '</div><div class="movie-time"><li>'
+ timeConvert(movie.showtimes[j].dateTime.slice(11,16))
+ '</li></div></li>';
} else {
console.log(mTimeConverted);
listing += thingToFind.append($("li").append(mTimeConverted + '</li>'));
}
Условный оператор, который работает нормально, проверяет, является ли уникальным текущим кинотеатр ID по сравнению с предыдущими один или, если предыдущим ID не существует (массив Я толкаю значение ID очищает после бегаю через цикл анимации фильмов).
другое заявление, предназначенное для объединения различных сеансов-добавляет кучу пустых объектов JQuery для предыдущего листинга:
MoviePlace1 4:30PM [object Object][object Object]
Я попытался изменить его миллион различных способов вернуть фактическое значение вместо пустого объекта jQuery, но я не могу понять его. Может ли кто-нибудь помочь?
Вот образец объекта фильма, включая сеансы.
{
"tmsId": "MV007117430000",
"rootId": "11455160",
"subType": "Feature Film",
"title": "Me and Earl and the Dying Girl",
"releaseYear": 2015,
"releaseDate": "2015-01-25",
"titleLang": "en",
"descriptionLang": "en",
"entityType": "Movie",
"genres": [
"Comedy drama"
],
"longDescription": "An awkward high-school senior (Thomas Mann) and a gravely ill classmate (Olivia Cooke) surprise themselves by becoming inseparable friends.",
"shortDescription": "A shy, awkward teenager and a gravely ill classmate become inseparable friends.",
"topCast": [
"Thomas Mann",
"Olivia Cooke",
"Ronald Cyler II"
],
"directors": [
"Alfonso Gomez-Rejon"
],
"officialUrl": "http://meandearlmovie.com/",
"qualityRating": {
"ratingsBody": "TMS",
"value": "3.5"
},
"ratings": [
{
"body": "Motion Picture Association of America",
"code": "PG-13"
}
],
"advisories": [
"Adult Language",
"Adult Situations"
],
"runTime": "PT01H45M",
"preferredImage": {
"width": "240",
"height": "360",
"caption": {
"content": "Me and Earl and the Dying Girl (2015)",
"lang": "en"
},
"uri": "assets/p11455160_p_v5_aa.jpg",
"category": "Poster Art",
"text": "yes",
"primary": "true"
},
"showtimes": [
{
"theatre": {
"id": "10420",
"name": "Violet Crown Cinema"
},
"dateTime": "2015-07-21T11:00",
"barg": false
},
{
"theatre": {
"id": "10420",
"name": "Violet Crown Cinema"
},
"dateTime": "2015-07-21T17:10",
"barg": false
},
{
"theatre": {
"id": "10420",
"name": "Violet Crown Cinema"
},
"dateTime": "2015-07-21T22:10",
"barg": false
},
{
"theatre": {
"id": "10984",
"name": "Alamo Drafthouse South Lamar"
},
"dateTime": "2015-07-21T14:15",
"barg": false
},
{
"theatre": {
"id": "10984",
"name": "Alamo Drafthouse South Lamar"
},
"dateTime": "2015-07-21T17:05",
"barg": false
},
{
"theatre": {
"id": "10984",
"name": "Alamo Drafthouse South Lamar"
},
"dateTime": "2015-07-21T19:50",
"barg": false
},
{
"theatre": {
"id": "10984",
"name": "Alamo Drafthouse South Lamar"
},
"dateTime": "2015-07-21T22:10",
"barg": false
}
]
}
Было бы полезно включить фрагмент исходных данных, которые вы получаете из API. –
Извините, что – litel
'thingToFind.append()' возвращает объект jQuery. Вы не можете использовать 'listing + jQuery' для их конкатенации. – Barmar