document.getElementById ("demo"). innerHTML = Math.ceil ((Math.random () * 10) -1);печатает только 1 номер? - PullRequest
0 голосов
/ 20 февраля 2019

Почему document.getElementById(“demo”).innerHTML = Math.ceil((Math.random()*10)-1); печатает только 1 номер?

function myFunction() {
  var bbb = document.getElementById("ilgis").value;

  for (i = 0; i <= bbb; i++) {

    //document.writeln(aaa);
    document.getElementById("demo").innerHTML = Math.ceil((Math.random() * 10) - 1);

  }
}
<input type="number" id="ilgis" value="123">

<button onclick="myFunction()">Click me</button>

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

1 Ответ

0 голосов
/ 20 февраля 2019

Поскольку вы все время заменяете innerHTML, а не добавляете в него что-либо.

Чтобы добавить контент, используйте += вместо =:

function myFunction() {
  var bbb = document.getElementById("ilgis").value;

  for (i = 0; i <= bbb; i++) {

    //document.writeln(aaa);
    document.getElementById("demo").innerHTML += Math.ceil((Math.random() * 10) - 1);

  }
}
<input type="number" id="ilgis" value="123">

<button onclick="myFunction()">Click me</button>

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

РЕДАКТИРОВАТЬ:

Как сказал @Robin Zigmond, на самом деле было бы лучше создать строку и добавить эту строку к innerHTML только один раз после окончания цикла для сохранения производительности:

function myFunction() {
  var bbb = document.getElementById("ilgis").value;

  var numbers = "";
  for (i = 0; i <= bbb; i++) {

    //document.writeln(aaa);
    numbers += Math.ceil((Math.random() * 10) - 1);

  }
  document.getElementById("demo").innerHTML = numbers;
}
<input type="number" id="ilgis" value="123">

<button onclick="myFunction()">Click me</button>

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