我正在尝试获取数组中的文本(每个值一个单词)并将其插入到html中。所有代码都在这里:http://jsfiddle.net/chromedude/r6wVq/3/。
更新: 我的问题是我做错了什么?它没有做任何奇怪的事情。
对于每个想知道这段代码应该帮我做什么的人来说,都要记住学校的长篇文章。
答案 0 :(得分:4)
你有一个无限循环,这就是浏览器崩溃的原因:
for (i = 0; i < text.length; i++) {
var currentText = text[i];
for (i = 0; i<blanks.length; i++){}
}
第二个循环始终将计数器变量i
重置为0
。如果您有嵌套循环,则必须使用不同的变量。并使用var
将变量声明为local,例如
for (var i = 0; i < text.length; i++) {
var currentText = text[i];
for ( var j = 0; j<blanks.length; j++){
}
}
最外层的for
循环相同!
我不知道你想用代码完成什么,但这里有一些评论:
var blankNum = Math.random(Math.floor() * (text.length / 2));
Math.random
没有参数,但Math.floor
没有。
for (i = 0; i < blanks.length; i++) {
blanks
此时仍为空,因此循环永远不会运行。
if (currentText==blanks[i]){
您确定blanks[i]
会包含文字吗?前面提到的(从不运行)循环似乎在数组中添加了数字。
textPrelim = <input type="text"></input>
这里出现语法错误,您必须将字符串括在引号中。
答案 1 :(得分:3)
我修复了你的小提琴:http://jsfiddle.net/yEKPt/1/
出了什么问题:
这一行(27)引发了语法错误:
textPrelim = <input type="text"></input> //Needs to be quoted.
应该是:
textPrelim = '<input type="text"></input>'; //Quoted.
您反转了Math.random和Math.floor(第8,14行)。 (参见:Math.Random()
,Math.Floor()
)
var blank = Math.random(Math.floor() * (text.length / 2));
查看我的修订版。我认为它能实现你想要的东西吗?
答案 2 :(得分:1)
除了Felix的答案之外,请尝试检查http://www.jslint.com处的代码是否存在语法错误和未声明(隐式全局)变量。