所以这就是我到目前为止所做的:
<script>
text = new Array("t", "te", "tes", "test");
for(new i; i < text.length; i++)
{
document.getElementById('text').innerHTML=text[i];
}
</script>
<body>
<span id='text'></span>
</body>
我稍后会添加一个计时器,但我的问题是,为什么我得到“ReferenceError'i'未定义”? 它被定义为你可以看到.. 提前谢谢。
答案 0 :(得分:7)
而不是:
for(new i; i < text.length; i++)
试试这个:
for(var i=0; i < text.length; i++)
您正在使用new
,在javascript中我们必须使用var
来声明变量。
<强> UPDATE1 强>
正如@MattBall和@oxfn在评论中提到的那样,您的脚本在DOM
准备好之前就已经运行了。所以你必须将脚本放在body标签之后。(或者你可以jquery)。
以下是工作代码:
<body>
<span id='text'></span>
<script>
var text = new Array("t", "te", "tes", "test");
for(var i=0; i < text.length; i++)
{
document.getElementById('text').innerHTML = document.getElementById('text').innerHTML +":"+ text[i];
}
</script>
</body>
答案 1 :(得分:2)
您也可以使用此方法,
var text = new Array("t", "te", "tes", "test");
text.forEach(function(textvalue) {
console.log(textvalue);
document.getElementById('text').innerHTML=textvalue;
});
参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
将数组内容值显示为<div id="text"></div>
<script>
function ArrayPrint(){
var text = ["t", "te", "tes", "test"];
text.forEach(function(textvalue) {
console.log(textvalue);
document.getElementById('text').innerHTML += textvalue +' | ';
});
}
window.onload = ArrayPrint;
</script>
HTML:
<div id="text"></div>
答案 2 :(得分:0)
<!DOCTYPE html>
<html>
<body>
<span id='text'></span>
</body>
</html>
<script type="text/javascript">
text = new Array("t", "te", "tes", "test");
for(var i=0; i < text.length; i++)
{
document.getElementById('text').innerHTML=text[i];
}
</script>
答案 3 :(得分:0)
由于JavaScript中的int
是基本类型,并且初始化不需要处理DOM的新关键字和JavaScript代码需要在代码运行时DOM已经可以使用,因此在关闭之前将脚本代码放在底部身体标签或在负载时调用它。
此外,您可以缓存长度属性,从而提高性能。
for(var i = 0,max=text.length; i < max; i++)
{
document.getElementById('text').innerHTML = document.getElementById('text').innerHTML +":"+ text[i];
}