Я хочу напечатать прямоугольник в своем DOM с помощью JavaScript, используя пользовательский ввод, но когда я запускаю этот код, я получаю, что » str » не определен

#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;  };