Как вы создаете для l oop, используя переменную в javascript? - PullRequest
1 голос
/ 05 марта 2020

У меня есть блок кода в элементе div "questionform", и я хочу, чтобы код повторялся, в зависимости от того, сколько раз пользователь хотел бы, чтобы в конечном итоге пользователь мог выполнить тест. Я попытался создать бит javascript, чтобы повторить только номер вопроса, но он не будет работать.

<div id="myHTMLWrapper">

</div>

<script>
  var wrapper = document.getElementById("myHTMLWrapper");

  var number = prompt("Enter the number of questions");

  for (var i = 0; i = number - 1; i++) {
    myHTML += '<span class="test">Question' + (i + 1) + '</span><br/><br/>';
  }

  wrapper.innerHTML = myHTML

</script>

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

1 Ответ

2 голосов
/ 05 марта 2020

У вас есть две проблемы в вашем коде. во-первых, вы должны объявить переменную my HTML вне l oop с пустой строкой. Во-вторых, в l oop i = number - 1 будет предотвращаться итерация l oop, попробуйте i < number

<div id="myHTMLWrapper">

</div>

<script>
  var wrapper = document.getElementById("myHTMLWrapper");

  var number = prompt("Enter the number of questions");
  var myHTML = '';
  for (var i = 0; i < number; i++) {
    myHTML += '<span class="test">Question ' + (i + 1) + '</span><br/><br/>';
  }

  wrapper.innerHTML = myHTML;

</script>

Хотя здесь значение итерации l oop с 1 с i <= number более целесообразно, так как это позволит вам использовать значение напрямую (без увеличение) в htmlString :

<div id="myHTMLWrapper">

</div>

<script>
  var wrapper = document.getElementById("myHTMLWrapper");

  var number = prompt("Enter the number of questions");
  var myHTML = '';
  for (var i = 1; i <= number; i++) {
    myHTML += '<span class="test">Question ' + i + '</span><br/><br/>';
  }

  wrapper.innerHTML = myHTML

</script>
...