Есть ошибка в коде, но не могу ее найти
Переделывала код и понимаю, что где-то в нем есть ошибка. Но где не могу найти?
<head> <title>test</title> </head> <body> <div style="margin-top: 10px;"> <div id="area" class="wrapper1"> <button id="start" class="myBut" onclick="check(countQuest)">Пройти тест</br>"Художники и окружение"</button> <center> <img src="111.jpg" id="img111"> <p id="question"></p> <ul style="list-style-type:none;"> <li><button onclick="check(0)" id="option1"><name="answers" ><span></span> </li> <li><button onclick="check(1)" id="option2"><name="answers" > <span></span> </li> <li><button onclick="check(2)" id="option3"><name="answers" > <span></span> </li> </ul> </center> <div id="rez"></div> </div> </div> document.getElementsByTagName("center")[0].style.display = "none"; var questions = ["1. На одной из последних работ Эдуарда Мане была изображена строящеяся Эйфелева башня", "2. Детство Поля Гогена прошло в Перу","3. Хаим Сутин, Юдаль Пэн, Марк Шагал, Леон Бакст, Валентин Волков, Язэп Дроздович - все эти художники родились на территории современной Беларуси", "4. На одной из самых больших картин мира \"Явление Христа народу\", Александр Иванов одного из персонажей написал с Гоголя", "5. Дега любил писать балерин, Моне пруды и кувшинки, а кого называли \"художником воды\""]; var number1 = ["Нет, такой картины у него нет", "Нет,он родился и детство провел в Париже. В экзотических странах он жил уже только в зрелом возрасте","Да, все эти выдающиеся художники родились на территории Беларуси", "Да, он очень дружил с Гоголем и попросил его позировать для картины", "Альфред Сислей"]; var number2 = ["Да, но это была одна из его ранних картин","Да, и это возможно и повлияло на его творческого мирооощущение","Нет, Валентин Волков и Леон Бакст родились за пределами современной Беларуси", "Нет, так как этот персонаж есть на его набросках еще до того, как он познакомился с писателем", "Камиль Писсарро"]; var number3 = ["Да, конечно, Мане писал башню, как Моне вокзал Сен-Лазар","Нет, его детство прошло в Чили","Нет, Валентин Волков и Юдаль Пэн родились за пределами современной Беларуси", "На картине нет персонажа похожего на Гоголя, да и Иванов не был с ним даже знаком", "Фредерик Базиль"]; var answer = [0,1,2,1,0]; var countQuest = 0; var plus = 0; var images = []; for (var i=1; i<=5; i++ ) { images[i]= document.createElement("img"); images[i].src = "11"+i+".jpg"; }; function check(num){ if (num == 0) { document.getElementsByTagName("center")[0].style.display = "block"; } if(num == answer[countQuest]) plus++; if (countQuest == questions.length) { document.getElementsByTagName("center")[0].style.display = "none"; rez.innerHTML = rez.innerHTML + "<br/>Правильных ответов:" + plus +" из 5"; } else { document.getElementById('question').innerHTML = questions[countQuest]; document.getElementById('option1').getElementsByTagName("span")[0].innerHTML = number1[countQuest]; document.getElementById('option2').getElementsByTagName("span")[0].innerHTML = number2[countQuest]; document.getElementById('option3').getElementsByTagName("span")[0].innerHTML = number3[countQuest]; document.getElementById('img').src[i] = images[countQuest]; countQuest++; } |
Darya_kod,
Какие тебе ошибки консоль выводит? Цитата:
Цитата:
|
Да, действительно, извините, не очень верно сформулировала свой вопрос. Указывает ошибку в 45 строчке и есть ошибка в подсчете правильных ответов, т.е они подсчитываются, но не верно. И тут я не могу понять, что не так!
|
Darya_kod,
Ты осознай и напиши сюда, что ты хочешь добиться этой строкой? В чем её назначение? document.getElementById('img').src[i] = images[countQuest]; |
В этой строке я хочу вызвать по id элемент "картинка" и потом по продвижению по вопросам ее менять.
|
Darya_kod,
Короче смотри 1) Сделай массив не элементов img (как у тебя), а строк url (ну src) 2) Прикол в том, будет один img которому будешь прописывать разные src document.getElementById('укажи id img').src = images[countQuest]; |
Правильно ли я вас поняла?
<head> <title>test</title> </head> <body> <div style="margin-top: 10px;"> <div id="area" class="wrapper1"> <button id="start" class="myBut" onclick="check(countQuest)">Пройти тест</br>"Художники и окружение"</button> <center> <img src="111.jpg" id="111.jpg"> <p id="question"></p> <!-- <button onclick="check(0)" class="myButton" id="option1" hidden></button> </br> <button onclick="check(1)" class="myButton" id="option2" hidden></button> </br> <button onclick="check(2)" class="myButton" id="option3" hidden></button> </br>--> <ul style="list-style-type:none;"> <li><button onclick="check(0)" id="option1"><name="answers" ><span></span> </li> <li><button onclick="check(1)" id="option2"><name="answers" > <span></span> </li> <li><button onclick="check(2)" id="option3"><name="answers" > <span></span> </li> </ul> </center> <div id="rez"></div> </div> </div> document.getElementsByTagName("center")[0].style.display = "none"; //Массив вопросов var questions = ["1. На одной из последних работ Эдуарда Мане была изображена строящеяся Эйфелева башня", "2. Детство Поля Гогена прошло в Перу","3. Хаим Сутин, Юдаль Пэн, Марк Шагал, Леон Бакст, Валентин Волков, Язэп Дроздович - все эти художники родились на территории современной Беларуси", "4. На одной из самых больших картин мира \"Явление Христа народу\", Александр Иванов одного из персонажей написал с Гоголя", "5. Дега любил писать балерин, Моне пруды и кувшинки, а кого называли \"художником воды\""]; //Массивы вариантов ответов var number1 = ["Нет, такой картины у него нет", "Нет,он родился и детство провел в Париже. В экзотических странах он жил уже только в зрелом возрасте","Да, все эти выдающиеся художники родились на территории Беларуси", "Да, он очень дружил с Гоголем и попросил его позировать для картины", "Альфред Сислей"]; var number2 = ["Да, но это была одна из его ранних картин","Да, и это возможно и повлияло на его творческого мирооощущение","Нет, Валентин Волков и Леон Бакст родились за пределами современной Беларуси", "Нет, так как этот персонаж есть на его набросках еще до того, как он познакомился с писателем", "Камиль Писсарро"]; var number3 = ["Да, конечно, Мане писал башню, как Моне вокзал Сен-Лазар","Нет, его детство прошло в Чили","Нет, Валентин Волков и Юдаль Пэн родились за пределами современной Беларуси", "На картине нет персонажа похожего на Гоголя, да и Иванов не был с ним даже знаком", "Фредерик Базиль"]; //Массив правильных ответов var answer = [0,1,2,1,0]; var countQuest = 0; var plus = 0; //var images = []; var Im = [ {src: '111.jpg'}, {src: '112.jpg'}, {src: '113.jpg'}, {src: '114.jpg'}, {src: '115.jpg'} ]; for (var i=0; i<=5; i++) { Im[i].img = new Image(); Im[i].img.src = Im[i].src; }; /*for (var i=1; i<=5; i++ ) { images[i]= document.createElement("img"); images[i].src = "11"+i+".jpg"; }; */ function check(num){ if (num == 0) { document.getElementsByTagName("center")[0].style.display = "block"; } if(num == answer[countQuest]) plus++; if (countQuest == questions.length) { document.getElementsByTagName("center")[0].style.display = "none"; rez.innerHTML = rez.innerHTML + "<br/>Правильных ответов:" + plus +" из 5"; } else { document.getElementById('question').innerHTML = questions[countQuest]; document.getElementById('option1').getElementsByTagName("span")[0].innerHTML = number1[countQuest]; document.getElementById('option2').getElementsByTagName("span")[0].innerHTML = number2[countQuest]; document.getElementById('option3').getElementsByTagName("span")[0].innerHTML = number3[countQuest]; document.getElementById('111.jpg').src = images[countQuest]; countQuest++; } } |
Darya_kod,
Не создавай изображения как элементы! Просто сделай массив урлов! Просто массив строк. Строк. У тебя будет на странице один элемент img с нормальным id="question-image" и у этого img ты будешь менять .src = .. Зачем ты задаешь id как имя файла? |
Darya_kod,
В исходном сообщении в строке 45 кода у вас идёт обращение к элементу по ID="img" причём как к массиву элементов с таким тэгом - через индекс [i]: document.getElementById('img').src[i] = images[countQuest]; Как мне кажется здесь 2 ошибки: во-первых может быть только один (id уникальны), поэтому индекс [i] не нужен, во вторых, где такой элемент в коде (с таким ID)? Может стоит обращаться .getElementsByTagName("img") тогда возможна индексация по номеру элемента через [i], но индекс i для 45 строки тоже вроде нигде не задан. Значение неопределено. PS Может я что-то не до конца понял (я сам пока только изучаю язык), но мне видятся такие ошибки. |
Переделала, но что-то не так
<head> <title>test</title> </head> <body> <div style="margin-top: 10px;"> <div id="area" class="wrapper1"> <button id="start" class="myBut" onclick="check(countQuest)">Пройти тест</br>"Художники и окружение"</button> <center> <img src="111.jpg" id="question-image"> <p id="question"></p> <!-- <button onclick="check(0)" class="myButton" id="option1" hidden></button> </br> <button onclick="check(1)" class="myButton" id="option2" hidden></button> </br> <button onclick="check(2)" class="myButton" id="option3" hidden></button> </br>--> <ul style="list-style-type:none;"> <li><button onclick="check(0)" id="option1"><name="answers" ><span></span> </li> <li><button onclick="check(1)" id="option2"><name="answers" > <span></span> </li> <li><button onclick="check(2)" id="option3"><name="answers" > <span></span> </li> </ul> </center> <div id="rez"></div> </div> </div> document.getElementsByTagName("center")[0].style.display = "none"; //Массив вопросов var questions = ["1. На одной из последних работ Эдуарда Мане была изображена строящеяся Эйфелева башня", "2. Детство Поля Гогена прошло в Перу","3. Хаим Сутин, Юдаль Пэн, Марк Шагал, Леон Бакст, Валентин Волков, Язэп Дроздович - все эти художники родились на территории современной Беларуси", "4. На одной из самых больших картин мира \"Явление Христа народу\", Александр Иванов одного из персонажей написал с Гоголя", "5. Дега любил писать балерин, Моне пруды и кувшинки, а кого называли \"художником воды\""]; //Массивы вариантов ответов var number1 = ["Нет, такой картины у него нет", "Нет,он родился и детство провел в Париже. В экзотических странах он жил уже только в зрелом возрасте","Да, все эти выдающиеся художники родились на территории Беларуси", "Да, он очень дружил с Гоголем и попросил его позировать для картины", "Альфред Сислей"]; var number2 = ["Да, но это была одна из его ранних картин","Да, и это возможно и повлияло на его творческого мирооощущение","Нет, Валентин Волков и Леон Бакст родились за пределами современной Беларуси", "Нет, так как этот персонаж есть на его набросках еще до того, как он познакомился с писателем", "Камиль Писсарро"]; var number3 = ["Да, конечно, Мане писал башню, как Моне вокзал Сен-Лазар","Нет, его детство прошло в Чили","Нет, Валентин Волков и Юдаль Пэн родились за пределами современной Беларуси", "На картине нет персонажа похожего на Гоголя, да и Иванов не был с ним даже знаком", "Фредерик Базиль"]; //Массив правильных ответов var answer = [0,1,2,1,0]; var countQuest = 0; var plus = 0; //var images = []; var Im = ['111.jpg','112.jpg','113.jpg','114.jpg','115.jpg']; for (var i=0; i<=5; i++) { Im[i].img.src = Im[i].src; }; function check(num){ if (num == 0) { //при первом входе делаем видимыми наши вопрос-ответы document.getElementsByTagName("center")[0].style.display = "block"; } if(num == answer[countQuest]) plus++; if (countQuest == questions.length) { //вывод результата //делаем отображение вопросов-ответов невидимыми при выводе результата document.getElementsByTagName("center")[0].style.display = "none"; rez.innerHTML = rez.innerHTML + "<br/>Правильных ответов:" + plus +" из 5"; } else {//вывод текущих вопросов document.getElementById('question').innerHTML = questions[countQuest]; document.getElementById('option1').getElementsByTagName("span")[0].innerHTML = number1[countQuest]; document.getElementById('option2').getElementsByTagName("span")[0].innerHTML = number2[countQuest]; document.getElementById('option3').getElementsByTagName("span")[0].innerHTML = number3[countQuest]; document.getElementById('question-image').src = images[countQuest]; countQuest++; } } |
Часовой пояс GMT +3, время: 02:38. |