


Помогите пожалуйста хочу скрыть, я пробовал но нечего не получается
Вот мне нужно prompt когда вожу правильный ответ кнопка скрывается, если ввожу не правильно то кнопка стоит на месте, а если отмена то кнопка стоит на месте
вот пример
html
<input type="button" value="нажми" onclick="Onloud()" id="getMessage">
вот как я написал javascript правильно или нет
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 мне важен для исчезновении кнопки
Привет.
Если учитывать только описанную задачу то вот:
// Упростим элемент
<button id='question-button' onclick='askQuestions()'>Нажми</button>
// Не используем 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);
}
}
}
Здесь же не совсем понятно что имеется ввиду.

display === question[1]
Ты сравниваешь строку с числом, тем более используя строгое сравнение. Оно всегда будет false.
OpenAlert() нигде не используется.
Задание очевидно подразумевает несколько вопросов и подсчёт очков, но не понятно в каких конкретно моментах требуется скрыть кнопку, выдать результат и возможно ли повторить опросник.
Вот ещё немного более продвинутый вариант (функционирует так же как тот что выше):
CSS:
.hide {
visibility: hidden;
}
HTML:
<button id='question-button'>Нажми</button>
JS:
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);
}
}
}