javascript - 我正在尝试制作一个随机单词生成器,为什么在我添加一个将数字转换为文本的开关后它不会更新 html?

标签 javascript html

   <ul id="myList">
  <li>Coffee</li>
  <li>Tea</li>
</ul>

<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
for (i = 0; i =5 ; i++;) { 
var y = Math.floor((Math.random() * 46) + 1)
switch(y) {
    case 1: x="a"; break; case 2: x="i"; break;
  case 3: x="u"; break;  case 4: x="e"; break;
  case 5: x="o"; break; //vowels
  case 6: x="ka"; break; case 7: x="ki"; break;
  case 8: x="ku"; break;  case 9: x="ke"; break;
  case 10: x="ko"; break; //k's
  case 11: x="sa"; break; case 12: x="shi"; break; 
  case 13: x="su"; break;  case 14: x="se"; break;
  case 15: x="so"; break; //s's
  case 16: x="ta"; break;  case 17: x="chi"; break;
  case 18: x="tsu"; break;  case 19: x="te"; break;
  case 20: x="to"; break; //t's
  case 21:x="na"; break;   case 22:x="ni"; break;
  case 23:x="nu"; break;    case 24:x="ne"; break;
  case 25:x="no"; break;//n's
  case 26:x="ha"; break;   case 27:x="hi"; break;
  case 28:x="hu"; break;    case 29:x="he"; break;
  case 30:x="ho"; break;//h's
  case 31:x="ma"; break;   case 32:x="mi"; break;
  case 33:x="mu"; break;    case 34:x="me"; break;
  case 35:x="mo"; break;//m's
  case 36:x="ya"; break;   case 37:x="yu"; break;
  case 38:x="yo"; break;//y's
  case 39: x="ra"; break;  case 40: x="ri"; break; 
  case 41: x="ru"; break;   case 42: x="re"; break; 
  case 43: x="ro"; break;//r's
  case 44: x="wa"; break;  case 45: x="wo"; break;
  case 46: x="n"; break;//w's & n
     default: x="?"; break;
}

   var node = document.createElement("LI");
    var textnode = document.createTextNode(x);
    node.appendChild(textnode);
    document.getElementById("myList").appendChild(node);}

}
</script>

我将 JavaScript 放在脚本标记中,因为我用作引用点的代码在其他情况下不起作用。
当我拥有除 for 循环和 switch 之外的所有内容时,它运行良好。 我计划在 js fiddle 上编写一段代码来生成随机文本,以练习翻译成不同的脚本。 (我一次生成 5 个 block ,将其写下来,然后继续执行下一段代码) 我尝试摆弄开关和循环并修复了一些分号错误,但它仍然不起作用。我有什么想法搞砸了吗? 编辑:请不要在这里编辑我的代码,我必须将脚本放入 html 中,否则会出现错误,因为由于某种原因无法找到该函数。如果您有关于如何修复该错误的想法,请告诉我

最佳答案

  1. 您有一个语法错误,您的控制台正在告诉您这一点。 i++;) 应为 i++)

  2. 你有一个无限循环。 for (i = 0; i = 5; i++) 这是在每个循环中将 5 赋给 i,因此它始终为 true。

  3. 奖励:为了获得更简单、更清晰的代码,您可以使用(我没有在这里全部完成,因为这会花费太长时间):

    var letter = ["a", "i", "se", "shi"],//等等。 y = Math.floor((Math.random() * 字母.length), x = 字母[y];//工作完成!

var letters = ["a", "i", "se", "shi", "ke"] // Just add stuff here.

function myFunction() {
	for (i = 0; i < 5; i++) {
		var y = Math.floor((Math.random() * letters.length)),
			x = letters[y],
			node = document.createElement("LI"),
			textnode = document.createTextNode(x);
		node.appendChild(textnode);
		document.getElementById("myList").appendChild(node);
	}
}
<ul id="myList">
  <li>Coffee</li>
  <li>Tea</li>
</ul>

<button onclick="myFunction()">Try it</button>

关于javascript - 我正在尝试制作一个随机单词生成器,为什么在我添加一个将数字转换为文本的开关后它不会更新 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47555712/

相关文章:

html - 如何使多列滚动条菜单看起来像 Excel 电子表格

javascript - 选项卡中的 jQuery Mobile ListView 和渲染问题

php - 投资组合类别 - 如何更改它们在投资组合页面(WordPress 网站)上的显示顺序

javascript - 在 iOS8 中使用 FileReader 最安全的方法是什么?

javascript - 如何使用 koa2 运行简单的应用程序?

javascript - 在滚动时修改高度时侧边栏无法控制地跳转

javascript - 如何在图像上显示 php 变量输出

Javascript 使用数组计算值

javascript - 从 fancybox iframe 在网站上查找元素

html - IE8 无法加载字体