Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Помогите пожалуйста хочу скрыть, я пробовал но нечего не получается

Вот мне нужно prompt когда вожу правильный ответ кнопка скрывается, если ввожу не правильно то кнопка стоит на месте, а если отмена то кнопка стоит на месте
вот пример
html

1
 <input type="button" value="нажми" onclick="Onloud()" id="getMessage"> 

вот как я написал javascript правильно или нет

123456789101112131415161718192021222324252627282930313233343536373839
 var div = document.getElementById("getMessage"); 
var display = 0; 
 
function Onloud() { 
    var score=0; 
		var questions = [ 
		  ['луна?', 'ночь'], 
		   
		]; 
		 
		function askQuestion(question) { 
		 var answer = prompt(question[0],''); 
		    if (answer == question[1]) { 
		        alert('Верно!'); 
		        score++; 
				 
		    } else { 
		        alert('Неверно. Правильный ответ ' + question[1]); 
		    } 
			 
			if(display === question[1]) { 
				div.style.visibility="show" 
				display = 0; 
				score++; 
			} else { 
				div.style.visibility="hidden" 
				display = 1; 
				score++; 
			} 
		} 
		for (var i=0; i<questions.length; i++) { 
		 askQuestion(questions[i]); 
		} 
 
} 
 
function OpenAlert(){ 
        document.getElementById("getMessage").style.visibility="hidden"; 
} 

вот задает вопрос луна я пишу ночь для правильного ответа. Но id мне важен для исчезновении кнопки

По дате
По рейтингу
Аватар пользователя
Новичок

Привет.
Если учитывать только описанную задачу то вот:

12
 // Упростим элемент
<button id='question-button' onclick='askQuestions()'>Нажми</button> 
1234567891011121314151617181920212223242526
 // Не используем var. Только const или let.
// Названия должны отражать содержащиеся в переменной данныые. В твоём случае нет никакого "div".
const button = document.getElementById('question-button');
// Название функции как понять - Onloud? Перевод - на громкость? на громкую? Или имелось ввиду Onload? Onload это название события. Так функции не называют. К тому же их не принято писать с большой буквы.
function askQuestions() {
  const questions = [
    ['луна?', 'ночь']
  ]; 
  let score = 0;
  // Нет смысла объявлять ещё одну функцию если она вызывается внутри цикла.
  for (let i; i < questions.length; i++) {
    // Сохраняем вопрос/ответ для упрощённого доступа
    const question = questions[i][0];
    const rightAnswer = questions[i][1];
    // Второй параметр функции prompt уже по-умолчанию пустой, можно его не указывать
    const answer = prompt(question); 
    if (answer == rightAnswer) {
      score++;
      alert('Верно!');
      button.style.visibility = 'hidden';
    }
    else {
      alert('Неверно. Правильный ответ ' + rightAnswer); 
    }
  }
} 

Здесь же не совсем понятно что имеется ввиду.

1
 display === question[1] 

Ты сравниваешь строку с числом, тем более используя строгое сравнение. Оно всегда будет false.
OpenAlert() нигде не используется.
Задание очевидно подразумевает несколько вопросов и подсчёт очков, но не понятно в каких конкретно моментах требуется скрыть кнопку, выдать результат и возможно ли повторить опросник.

Вот ещё немного более продвинутый вариант (функционирует так же как тот что выше):
CSS:

123
 .hide {
  visibility: hidden;
} 

HTML:

1
 <button id='question-button'>Нажми</button> 

JS:

12345678910111213141516171819202122
 const button = document.getElementById('question-button');
// обработчик события подключаем по современному, чтобы не засорять HTML документ.
button.addEventListener('click', askQuestions);
function askQuestions() {
  const questions = [
    ['луна?', 'ночь']
  ];
  let score = 0;
  // Обстрагируемся for...of циклом
  // Деструктурируем массив на переменные внутри самого for...of
  for([question, rightAnswer] of questions){
    const answer = prompt(question);
    if(answer == rightAnswer){
      score++;
      alert('Верно!');
      button.classList.toggle('hide');
    }
    else{
      alert('Неверно. Правильный ответ ' + rightAnswer);
    }
  }
}