Inner HTML - выборка из скрипта - PullRequest
0 голосов
/ 25 февраля 2020

Я пытаюсь отобразить случайные числа от 1 до 7. Я не хочу, чтобы они повторялись, и я хочу отображать каждое число. Я написал свой код JS внутри тега script. Я хочу получить случайное число всякий раз, когда нажимается button, вместо этого я получаю ошибку

Uncaught TypeError: Cannot set property 'innerHTML' of null
    at grandom (fe.html:48)
    at HTMLButtonElement.onclick (fe.html:25)

Ниже мой код

image

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

После document.write(...); другие элементы на странице не ожидают пропущенного текста.

Вот почему, когда вы пытаетесь найти, document.getElementById("demo") не может найти и вернуть null. (затем выдает ошибку, когда вы пытаетесь получить доступ к innerHTML)

Если вы пытаетесь добавить что-то на страницу, вы должны использовать document.body.innerHTML += "...".

О самом алгоритме - вы можете использовать:

[1,2,3,4,5,6,7].sort(function() { return .5 -Math.random();});

Он будет случайным образом перемешивать массив.

1 голос
/ 25 февраля 2020

Ваш document.write(..) ломает его.

Вы можете попробовать:

document.body.innerHTML += '<br />';
document.getElementById("demo").innerHTML = `Question No : ${q[random]}`;
document.body.innerHTML += '<br />';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...