简体   繁体   English

如何使用javascript中的变量创建for循环?

[英]How do you create a for loop using a variable in javascript?

I have a block of code under a div element "questionform" and want to allow the code to repeat, depending on the number of times the user would like it to, to eventually allow the user to make a quiz.我在 div 元素“questionform”下有一个代码块,并希望允许代码重复,具体取决于用户希望它的次数,最终允许用户进行测验。 I have tried to create a bit of javascript in order to repeat just the question number for now, but it won't work.我试图创建一些 javascript 以便现在只重复问题编号,但它不起作用。

 <div id="myHTMLWrapper"> </div> <script> var wrapper = document.getElementById("myHTMLWrapper"); var number = prompt("Enter the number of questions"); for (var i = 0; i = number - 1; i++) { myHTML += '<span class="test">Question' + (i + 1) + '</span><br/><br/>'; } wrapper.innerHTML = myHTML </script>

any help will be appreciated, and please dont just point out flaws and not tell me how to improve them.任何帮助将不胜感激,请不要只是指出缺陷而不是告诉我如何改进它们。

You have two issues in your code.您的代码中有两个问题。 firstly, you have to declare the variable myHTML outside the loop with empty string.首先,您必须使用空字符串在循环外声明变量myHTML Secondly, in the loop i = number - 1 will prevent the iteration of the loop, try i < number其次,在循环中i = number - 1会阻止循环的迭代,尝试i < number

 <div id="myHTMLWrapper"> </div> <script> var wrapper = document.getElementById("myHTMLWrapper"); var number = prompt("Enter the number of questions"); var myHTML = ''; for (var i = 0; i < number; i++) { myHTML += '<span class="test">Question ' + (i + 1) + '</span><br/><br/>'; } wrapper.innerHTML = myHTML; </script>

Though, here starting the loop iteration value from 1 with i <= number is more meaningful as this will allow you to use the value directly (without the increment) in the htmlString :不过,这里从1开始循环迭代值i <= number更有意义,因为这将允许您直接使用htmlString 中的值(没有增量):

 <div id="myHTMLWrapper"> </div> <script> var wrapper = document.getElementById("myHTMLWrapper"); var number = prompt("Enter the number of questions"); var myHTML = ''; for (var i = 1; i <= number; i++) { myHTML += '<span class="test">Question ' + i + '</span><br/><br/>'; } wrapper.innerHTML = myHTML </script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM