FizzBuzz возвращает случайные числа при использовании getElementById.innerHTML - PullRequest
0 голосов
/ 21 сентября 2018

Надеюсь, кто-нибудь может помочь мне здесь.Я очень новичок в программировании и учусь писать свой первый fizzbuzz.Мой код работает, когда я выполняю его с помощью console.log, но когда я пытаюсь использовать getElementById.innerHTML, он хочет вернуть случайные числа.

Вот то, с чем я работаю:

function clickAlert2() {
  for (var i = 1; i <= 140; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
      document.getElementById("ngList").innerHTML +=
        i + ". National Gamers <br>";
    } else if (i % 3 === 0) {
      document.getElementById("ngList").innerHTML += i + ". National <br>";
    } else if (i % 5 === 0) {
      document.getElementById("ngList").innerHTML += i + ". Gamers <br>";
    } else {
      document.getElementById("ngList").innerHTML += i;
    }
  }
}
  .button2 {
  background-color: #FAD7A0;
  color: #21618C;
  text-align: center;
  text-decoration: none;
  font-size: 18px;
<input type="button" class="button2" value="Print 140 Lines" onclick="clickAlert2()">
<br>
<div id="ngList"></div>

Я думаю, что это просто что-то незначительное, но я понятия не имею, что это может быть ...

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы забыли добавить разрыв к остальному, чтобы он печатал числа в одной строке.Первая строка 123, не случайное число, а первые три числа в одной строке.

function clickAlert2() {
  var element = document.getElementById("ngList");

  for (var i = 1; i <= 140; i++) {
    if (i % 3 === 0 && i % 5 === 0) {
      element.innerHTML += i + ". National Gamers";
    } else if (i % 3 === 0) {
      element.innerHTML += i + ". National";
    } else if (i % 5 === 0) {
      element.innerHTML += i + ". Gamers";
    } else {
      element.innerHTML += i;
    }
    element.innerHTML += "<br>";
  }
}
  .button2 {
  background-color: #FAD7A0;
  color: #21618C;
  text-align: center;
  text-decoration: none;
  font-size: 18px;
<input type="button" class="button2" value="Print 140 Lines" onclick="clickAlert2()">
<br>
<div id="ngList"></div>
0 голосов
/ 21 сентября 2018

Ваш код не возвращает случайные случайные числа, а значения i, которые не делятся ни на 3, ни на 5 (или оба), не получили <br> новых строк в HTML.Если вы добавите <br> к случаю else, ваш ввод будет выглядеть так, как вы ожидаете.

function clickAlert2() {
    for (var i=1; i <= 140; i++) {
        if (i % 3 === 0 && i % 5 === 0) {
            document.getElementById("ngList").innerHTML +=
                i + ". National Gamers <br>";
        }
        else if (i % 3 === 0) {
            document.getElementById("ngList").innerHTML += i + ". National <br>";
        }
        else if (i % 5 === 0) {
            document.getElementById("ngList").innerHTML += i + ". Gamers <br>";
        }
        else {
            document.getElementById("ngList").innerHTML += i + "<br>";
        }
    }
}
.button2 {
    background-color: #FAD7A0;
    color: #21618C;
    text-align: center;
    text-decoration: none;
    font-size: 18px;
<input type="button" class="button2" value="Print 140 Lines" onclick="clickAlert2()">
<br>
<div id="ngList"></div>

Обратите внимание, если вы даже хотите напечатать несоответствующие строки.Если вы этого не сделаете, то условие else должно быть полностью удалено.

...