как вставить цикл while в функцию

#javascript #arrays #while-loop

#javascript #массивы #цикл while

Вопрос:

Я пытаюсь вставить цикл while в функцию с именем myFunction . Когда вы нажимаете на кнопку, она должна отображать результат массива.

 <!DOCTYPE html>
<html>
<body>
<button id="btn">Click Me!</button>

<p id="i"><strong>this</strong> represents:</p>

<p id="demo"></p>
<script>

  function myFunction () {
let i = 0;
while(i<5){
    document.write(i    '<br/>');
    i  ;
}
}

var btn = document.getElementById("btn");
btn.addEventListener("click", myFunction());


</script>
</body>
</html>
 

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

1. Во-первых, в моей функции отсутствуют круглые скобки. Во-вторых, was() не объявлен и вместо этого должен иметь myFunction .

2. — строка: «function myFunction {» изменить на «function was () {» И, я думаю, вы хотите использовать document.getElementById(«demo»).innerHTML, а не document.write

Ответ №1:

Попробуйте так:

 <!DOCTYPE html>
<html>

  <body>
    <button id="btn">Click Me!</button>

    <p id="i"><strong>this</strong> represents:</p>

    <p id="demo"></p>
    <script>
      function myFunction() {
        console.log(1)
        let i = 0;
        while (i < 5) {
          document.write(i   '<br/>');
          i  ;
        }
      }

      var btn = document.getElementById("btn");
      btn.addEventListener("click", myFunction);

    </script>
  </body>
</html> 

Было исправлено несколько незначительных ошибок, например was() , должно быть myFunction , и определение myFunction необходимых скобок () после имени функции.

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

1. Спасибо, я спешил опубликовать, и я пропустил замену «было» на «myFunction»

2. Поэтому при вызове функции в add eventlistener я должен исключить ()? btn.addEventListener(«click», myFunction());

3. Это зависит от того, если все, что вы хотите сделать, это вызвать функцию без передачи каких-либо аргументов, вы можете сделать btn.addEventListener("click", myFunction); . Если вам нужно сделать больше, чем это, вы можете сделать это следующим btn.addEventListener("click", function() { /* do stuff */ myFunction(); anotherFunction(myArg); }); образом, попробуйте сами и посмотрите, что работает для вас 🙂

Ответ №2:

Вы пропускаете () после myFunction:

   function myFunction() {
let i = 0;
while(i<5){
    document.write(i    '<br/>');
    i  ;
}
} 
 

вы уверены, что хотите использовать document.write , а не console.log(i) ?