23.12.2016, 20:49
|
Интересующийся
|
|
Регистрация: 10.07.2016
Сообщений: 21
|
|
Есть ошибка в коде, но не могу ее найти
Переделывала код и понимаю, что где-то в нем есть ошибка. Но где не могу найти?
<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++;
}
|
|
23.12.2016, 23:46
|
|
Профессор
|
|
Регистрация: 21.11.2015
Сообщений: 440
|
|
Darya_kod,
Какие тебе ошибки консоль выводит?
Цитата:
|
понимаю, что где-то в нем есть ошибка
|
Интуитивно, да?)
Цитата:
|
Но где не могу найти?
|
Наверно, это был риторический вопрос))
|
|
25.12.2016, 12:05
|
Интересующийся
|
|
Регистрация: 10.07.2016
Сообщений: 21
|
|
Да, действительно, извините, не очень верно сформулировала свой вопрос. Указывает ошибку в 45 строчке и есть ошибка в подсчете правильных ответов, т.е они подсчитываются, но не верно. И тут я не могу понять, что не так!
|
|
25.12.2016, 15:40
|
|
Профессор
|
|
Регистрация: 21.11.2015
Сообщений: 440
|
|
Darya_kod,
Ты осознай и напиши сюда, что ты хочешь добиться этой строкой? В чем её назначение?
document.getElementById('img').src[i] = images[countQuest];
|
|
28.12.2016, 13:24
|
Интересующийся
|
|
Регистрация: 10.07.2016
Сообщений: 21
|
|
В этой строке я хочу вызвать по id элемент "картинка" и потом по продвижению по вопросам ее менять.
|
|
28.12.2016, 13:59
|
|
Профессор
|
|
Регистрация: 21.11.2015
Сообщений: 440
|
|
Darya_kod,
Короче смотри
1) Сделай массив не элементов img (как у тебя), а строк url (ну src)
2) Прикол в том, будет один img которому будешь прописывать разные src
document.getElementById('укажи id img').src = images[countQuest];
|
|
28.12.2016, 16:30
|
Интересующийся
|
|
Регистрация: 10.07.2016
Сообщений: 21
|
|
Правильно ли я вас поняла?
<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++;
}
}
|
|
28.12.2016, 16:53
|
|
Профессор
|
|
Регистрация: 21.11.2015
Сообщений: 440
|
|
Darya_kod,
Не создавай изображения как элементы! Просто сделай массив урлов!
Просто массив строк. Строк.
У тебя будет на странице один элемент img с нормальным id="question-image" и у этого img ты будешь менять .src = ..
Зачем ты задаешь id как имя файла?
|
|
30.12.2016, 18:19
|
Новичок на форуме
|
|
Регистрация: 30.12.2016
Сообщений: 1
|
|
Darya_kod,
В исходном сообщении в строке 45 кода у вас идёт обращение к элементу по ID="img" причём как к массиву элементов с таким тэгом - через индекс [i]:
document.getElementById('img').src[i] = images[countQuest];
Как мне кажется здесь 2 ошибки:
во-первых может быть только один (id уникальны), поэтому индекс [i] не нужен,
во вторых, где такой элемент в коде (с таким ID)?
Может стоит обращаться .getElementsByTagName("img") тогда возможна индексация по номеру элемента через [i], но индекс i для 45 строки тоже вроде нигде не задан. Значение неопределено.
PS Может я что-то не до конца понял (я сам пока только изучаю язык), но мне видятся такие ошибки.
Последний раз редактировалось Deniskm, 30.12.2016 в 18:21.
Причина: опечатка
|
|
05.01.2017, 11:24
|
Интересующийся
|
|
Регистрация: 10.07.2016
Сообщений: 21
|
|
Переделала, но что-то не так
<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++;
}
}
|
|
|
|