Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.12.2016, 20:49
Интересующийся
Отправить личное сообщение для Darya_kod Посмотреть профиль Найти все сообщения от Darya_kod
 
Регистрация: 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++;		
	}
Ответить с цитированием
  #2 (permalink)  
Старый 23.12.2016, 23:46
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Darya_kod,
Какие тебе ошибки консоль выводит?

Цитата:
понимаю, что где-то в нем есть ошибка
Интуитивно, да?)

Цитата:
Но где не могу найти?
Наверно, это был риторический вопрос))
Ответить с цитированием
  #3 (permalink)  
Старый 25.12.2016, 12:05
Интересующийся
Отправить личное сообщение для Darya_kod Посмотреть профиль Найти все сообщения от Darya_kod
 
Регистрация: 10.07.2016
Сообщений: 21

Да, действительно, извините, не очень верно сформулировала свой вопрос. Указывает ошибку в 45 строчке и есть ошибка в подсчете правильных ответов, т.е они подсчитываются, но не верно. И тут я не могу понять, что не так!
Ответить с цитированием
  #4 (permalink)  
Старый 25.12.2016, 15:40
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Darya_kod,
Ты осознай и напиши сюда, что ты хочешь добиться этой строкой? В чем её назначение?
document.getElementById('img').src[i] = images[countQuest];
Ответить с цитированием
  #5 (permalink)  
Старый 28.12.2016, 13:24
Интересующийся
Отправить личное сообщение для Darya_kod Посмотреть профиль Найти все сообщения от Darya_kod
 
Регистрация: 10.07.2016
Сообщений: 21

В этой строке я хочу вызвать по id элемент "картинка" и потом по продвижению по вопросам ее менять.
Ответить с цитированием
  #6 (permalink)  
Старый 28.12.2016, 13:59
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Darya_kod,
Короче смотри
1) Сделай массив не элементов img (как у тебя), а строк url (ну src)
2) Прикол в том, будет один img которому будешь прописывать разные src
document.getElementById('укажи id img').src = images[countQuest];
Ответить с цитированием
  #7 (permalink)  
Старый 28.12.2016, 16:30
Интересующийся
Отправить личное сообщение для Darya_kod Посмотреть профиль Найти все сообщения от Darya_kod
 
Регистрация: 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++;		
	}	
	
				
}
Ответить с цитированием
  #8 (permalink)  
Старый 28.12.2016, 16:53
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Darya_kod,
Не создавай изображения как элементы! Просто сделай массив урлов!
Просто массив строк. Строк.

У тебя будет на странице один элемент img с нормальным id="question-image" и у этого img ты будешь менять .src = ..

Зачем ты задаешь id как имя файла?
Ответить с цитированием
  #9 (permalink)  
Старый 30.12.2016, 18:19
Новичок на форуме
Отправить личное сообщение для Deniskm Посмотреть профиль Найти все сообщения от Deniskm
 
Регистрация: 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. Причина: опечатка
Ответить с цитированием
  #10 (permalink)  
Старый 05.01.2017, 11:24
Интересующийся
Отправить личное сообщение для Darya_kod Посмотреть профиль Найти все сообщения от Darya_kod
 
Регистрация: 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++;		
	}	
	
				
}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и отметить radio с определенным id, если radio с этим id есть. Globus Общие вопросы Javascript 2 15.04.2014 20:41
Помогите найти где кроется ошибка. Kylak Ваши сайты и скрипты 9 31.03.2013 14:29
ie6-7 В какой строке ошибка, как найти эту строку? aRpi Internet Explorer 1 04.04.2012 19:06
Ошибка в коде (Sandr) Общие вопросы Javascript 5 23.06.2011 01:42
не могу понять в чём ошибка scuter Общие вопросы Javascript 2 28.08.2008 15:22