#javascript #html #node.js #reactjs #typescript
#язык JavaScript #HTML #node.js #реагирует на #машинописный текст
Вопрос:
Я хочу создать прямоугольник всякий раз, когда кто-то нажимает на кнопку «попробовать», я буду запрашивать у пользователя номер строки, и он будет печатать одну и ту же строку и столбец, чтобы сформировать прямоугольник. Но когда я запустил этот код, я ничего не получу в своем DOM, и в консоли написано, что str не определен в строке 27, но я уже определил его, не знаю, в чем проблема
lt;html lang="en"gt; lt;headgt; lt;meta charset="UTF-8" /gt; lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /gt; lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /gt; lt;titlegt;Documentlt;/titlegt; lt;/headgt; lt;bodygt; lt;div class="container"gt; lt;pgt;Click the button to demonstrate the prompt box.lt;/pgt; lt;button onclick="myFunction()"gt;Try itlt;/buttongt; lt;p id="demo"gt;lt;/pgt; lt;scriptgt; const myFunction = () =gt; { let insertLine = prompt("put the no. of lines Here: "); let str = ""; for (i = 0; i lt; insertLine; i ) for (j = 0; j lt; i; j ) { str = "*"; } str = "n"; }; console.log(str); document.getElementById("demo").innerHTML = str; lt;/scriptgt; lt;/divgt; lt;/bodygt; lt;/htmlgt;
Комментарии:
1. вы определяете
str
внутриmyFunction
, но пытаетесь использовать это снаружи. приставка. назначение log и innerHTML должно быть в функции, а не снаружи.
Ответ №1:
Вы пытаетесь использовать переменную «str» вне области ее определения :
Вы определили str
MyFunction
его, но используете снаружи, когда пытаетесь войти в систему.
Ответ №2:
Я не уверен, что понял вашу проблему, но console.log() и document.getElementById() должны быть внутри вашей функции. Ваш цикл for также нуждался в изменениях, чтобы напечатать полный прямоугольник. Попробуйте этот код и дайте мне знать, работает ли он.
const myFunction = () =gt; { let insertLine = prompt("put the no. of lines Here: "); let str = ""; for (i = 0; i lt; insertLine; i ) { for (j = 0; j lt; insertLine; j ) { str = "*"; } str = "lt;br/gt;"; } console.log(str); document.getElementById("demo").innerHTML = str; };