Попытка научиться умножать

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

var firstArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var secondArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

var first = firstArray[Math.floor(Math.random() * firstArray.length)];
var second = secondArray[Math.floor(Math.random() * secondArray.length)];

var sum = firstArray[first - 1] * secondArray[second - 1];

function fn1(sum, n1) {

  var n1 = document.getElementById("n1").value;
  if (sum < n1) {
    document.getElementById("pp").style.background = "green";
  } else if (sum > n1) {
    document.getElementById("p").style.background = "red";
  } else {
    document.getElementById("p").style.background = "blue";
    document.getElementById("pp").style.background = "blue";
  }
};

document.getElementById("p").innerHTML = first;
document.getElementById("pp").innerHTML = second;

document.getElementById("a").innerHTML = first;
document.getElementById("b").innerHTML = second;
document.getElementById("sum").innerHTML = sum;
<h1>
  <a id = "a"></a> *
  <a id = "b"></a> = <input type = "text" id = "n1" name = "txt"></h1>

<button onclick = "fn1()" id = "btn1">Clcik me</button>

<p id = "p"></p>
<p id = "pp"></p>
<p id = "sum"></p>
<p id = "test"></p>

n1 является и параметром, и объявленной переменной.

Ibu 06.03.2019 22:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
48
3

Ответы 3

Ваш вызов функции не передает никаких аргументов

ваша функция fn1() не принимает аргументов

    var firstArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    var secondArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

    var first= firstArray[Math.floor(Math.random() * firstArray.length)];
    var second= secondArray[Math.floor(Math.random() * secondArray.length)];

    var sum = firstArray[first- 1] * secondArray[second - 1];

    function fn1() {

        var n1 = document.getElementById("n1").value;
        if (sum < n1) {
            document.getElementById("pp").style.background = "green";
        } else if (sum > n1) {
            document.getElementById("p").style.background = "red";
        } else {
            document.getElementById("p").style.background = "blue";
            document.getElementById("pp").style.background = "blue";
        }
    };

    document.getElementById("p").innerHTML = first;
    document.getElementById("pp").innerHTML = second;

    document.getElementById("a").innerHTML = first;
    document.getElementById("b").innerHTML = second;
    document.getElementById("sum").innerHTML = sum;
<h1>Learn to Multiply</h1>

<h1> <a id = "a"></a> * <a id = "b"></a> = <input type = "text" id = "n1" name = "txt"></h1>

<button onclick = "fn1()" id = "btn1">Clcik me</button>

<p id = "p"></p>
<p id = "pp"></p>
<p id = "sum"></p>
<p id = "test"></p>

Измените на это:

// first remove the parameters
function fn1() { 
  var n1 = document.getElementById("n1").value;
  // I think you want green when is equal
  if (sum == n1) {
    document.getElementById("pp").style.background = "green";
  } else if (sum > n1) {
    document.getElementById("p").style.background = "red";
  } else {
    document.getElementById("p").style.background = "blue";
    document.getElementById("pp").style.background = "blue";
  }
};

Другие вопросы по теме