<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 中,否则会出现错误,因为由于某种原因无法找到该函数。如果您有关于如何修复该错误的想法,请告诉我
最佳答案
您有一个语法错误,您的控制台正在告诉您这一点。
i++;)
应为i++)
你有一个无限循环。
for (i = 0; i = 5; i++)
这是在每个循环中将 5 赋给 i,因此它始终为 true。奖励:为了获得更简单、更清晰的代码,您可以使用(我没有在这里全部完成,因为这会花费太长时间):
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/