Javascript: цикл на любое число с четными / нечетными описаниями. Почему он просто записывает ввод пользователя?

1

Мне нужно, чтобы цикл в этом скрипте подсчитывался до любого числа, которое вводит пользователь.

Он точно описывает ввод пользователя, но не зацикливается и не подсчитывает его.

Как я могу это исправить? Должен ли я кодировать его по-другому?

Я очень новичок в javascript и кодировании в целом, любой совет будет очень признателен!

Вот что я имею до сих пор:

function clickAlert2() {
  var whatNum = document.getElementById("userEnterNum").value;
  for (var i = 1; i <= whatNum; i++) {
    if (i % 2 === 0)  
      document.getElementById("evenOddList").innerHTML = i + ". National Gamers - EVEN <br>";
    else if (i % 2 === 1)
      document.getElementById("evenOddList").innerHTML = i + ". National Gamers - ODD <br>";
  }
}  
  • 1
    document.getElementById("evenOddList").innerHTML = - каждая итерация перезаписывает то, что делала предыдущая итерация - вы можете захотеть +=
Теги:
for-loop
if-statement
counter
getelementbyid

2 ответа

1
Лучший ответ

Теперь я понял, чего вы хотите. Вот код. Просто скопируйте и вставьте.

<input type="text" id="userEnterNum">
<button type="button"
        onclick="clickAlert2()">Test
</button>
<div id="evenOddList"></div>

function clickAlert2() {
  var whatNum = document.getElementById("userEnterNum").value;
  var whatNum = parseInt(whatNum);  // this will parse the string to a number
  for (var i = 1; i <= whatNum; i++) {
   if (i % 2 == 0) {
      document.getElementById("evenOddList").innerHTML += i + ". National Gamers - EVEN <br>";
    } else {
      document.getElementById("evenOddList").innerHTML += i + ". National Gamers - ODD <br>";
    }
  }
}
  • 0
    Я попытался приспособить ваш код к моему, но, похоже, это та же проблема. Если это помогает визуализировать, вот как должен выглядеть <id> evenOddList: Допустим, вы ввели 5 1. Национальные геймеры - ODD 2. Национальные геймеры - EVEN 3. Национальные геймеры - ODD 4. Национальные геймеры - EVEN 5. Национальные Геймеры - ODD Я продолжаю получать: С пользовательским вводом 5 5. Национальные геймеры - ODD
  • 0
    Так что я думаю, что не очень хорошо понял твою проблему. Вы хотите составить свой вывод?
Показать ещё 5 комментариев
0

В качестве первоначальной идеи попробовать исправить свой код, попробуйте добавить alert(whatNum) после var whatNum = document.getElementById("userEnterNum").value; - возможно, элемент не существует с этим id или имеет value отличное от того, что вы ожидаете. Попробуйте добавить alert(1 <= whatNum) - это должно быть true если тело цикла for должно выполняться.

Также опубликуйте соответствующий фрагмент HTML или HTML, пользовательский ввод, который вы тестируете, и наблюдаемый вывод браузера для этого пользовательского ввода - если есть. Кроме того, проверьте консоль браузера и опубликуйте все, что выводится при запуске этого кода JavaScript. Спасибо и удачи!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню