Неперехваченная синтаксическая ошибка: отсутствует : после идентификатора свойства

#javascript #html

Вопрос:

Я хотел провести тест. Я думал, что смогу сделать var, и всякий раз, когда нажимается правильный ответ, он становится равным 1, и когда вы затем нажимаете кнопку, отображается правильный ответ. Проблема в том, что, что бы я ни делал, это не работает.

 var antwort = {
antwort = 0,
test: function() {
    if (antwort === 0) {
    document.getElementById("results").innerHTML = "That's right!";
    } else {
        
        document.getElementById("results").innerHTML = "That's wrong!";
    }
},

antwort: function() {
    antwort = 1
},
}; 
 <input type="radio" name="q1" class="q">a<br>
<input type="radio" name="q1" class="q">b<br>
<input type="radio" name="q1" class="q" onclick="antwort()">c<br>
<input type="radio" name="q1" class="q">d<br>
<button id="submit" onclick="test()">Show Results</button>
<div id="results"></div> 

Комментарии:

1. = это задание, а не сравнение … возьмите == или лучше === вместо этого.

2. developer.mozilla.org/en-US/docs/Web/JavaScript/Guide

3. developer.mozilla.org/de/docs/Web/JavaScript/…

4. Поэтому я попытался использовать == и ===, но это все равно не работает. Ошибка «Неперехваченная синтаксическая ошибка: отсутствует : после идентификатора свойства» У кого-нибудь есть идея, почему?

5. Вы указали это в заявлении if?

Ответ №1:

Тебе нужно

  • чтобы выбрать другое имя для флага и функции,
  • для использования функций из объекта,
  • чтобы лучше использовать логическое значение в качестве флага (что облегчает сравнение) и
  • для использования this для адресации свойств одного и того же объекта.

Внутри функции вы можете использовать условный (троичный) оператор ?: для назначения правильного сообщения.

 var antwort = {
        antwort: false,
        test: function () {
            document.getElementById("results").innerHTML = this.antwort
                ? "That's right!"
                : "That's wrong!";
        },
        richtigeAntwort: function () {
            this.antwort = true;
        }
    }; 
 <input type="radio" name="q1" class="q">a<br>
<input type="radio" name="q1" class="q">b<br>
<input type="radio" name="q1" class="q" onclick="antwort.richtigeAntwort()">c<br>
<input type="radio" name="q1" class="q">d<br>
<button id="submit" onclick="antwort.test()">Show Results</button>
<div id="results"></div> 

Ответ №2:

Используйте === или == для сравнения. Я имею в виду if (antwort === 0) или if (antwort == 0) . Спасибо.

Комментарии:

1. к сожалению, это все еще не работает. Там написано «Неперехваченная синтаксическая ошибка: отсутствует : после идентификатора свойства».