不能显示数组输出
Can't display array output
<script type="text/javascript">
function show(){
var word = document.getElementById("inp").value;
var letters = [];
for(i=0; i<=word.length; i++){
letters = word.substring(i,i+1);
}
document.getElementById("div").innerHTML = letters[0];
//setInterval();
}
</script>
</head>
<body>
<input type="text" id="inp" />
<button onclick="show()">Show</button>
<br>
<div id="div"></div>
</body>
"letters[0]"的输出显示为未定义。我想创建一个数组,假设输入是"hello"那么,输出将是:
letters[0] = "h"
letters[1] = "e"
letters[2] = "l"
....
而且,我还想给它添加一个setInterval()函数,这样它就可以一个接一个地显示字母,并有延迟。
谢谢!
使用push
方法在数组中添加元素
letters = word.substring(i,i+1);
letters.push(word.substring(i,i+1));
function show() {
var word = document.getElementById("inp").value;
var letters = [];
for (i = 0; i < word.length; i++) {
letters.push(word.substring(i, i + 1));
}
var i = 0;
var interval = setInterval(function() {
document.getElementById("div").innerHTML = letters[i];
++i === letters.length && clearInterval(interval);
}, 250);
}
<input type="text" id="inp" />
<button onclick="show()">Show</button>
<br>
<div id="div"></div>
要获得单个字母的数组,您也可以使用split
var div = document.getElementById("div"); // Cache
function show() {
var word = document.getElementById("inp").value; // Get latest value
var letters = word.split(''), // Split every character and store in letters array
i = 0; // Initialization to zero
div.innerHTML = ''; // Clear previous text
var interval = setInterval(function() {
div.innerHTML += letters[i]; // Append a character
++i === letters.length && clearInterval(interval); // Clear interval after appending all the characters
}, 100); // Call the function after every 100 milliseconds
}
<input type="text" id="inp" />
<button onclick="show()">Show</button>
<br>
<div id="div"></div>
每次迭代时不要覆盖letters
的值。使用push
附加到Array对象。
function show(){
var word = document.getElementById("inp").value;
var letters = [];
for(i=0; i<=word.length; i++){
letters.push(word.substring(i,i+1))
}
document.getElementById("div").innerHTML = letters[0];
//setInterval();
}
问题是您正在重写letters
的值,而不是将其创建为数组
var interval, i;
function show() {
var word = document.getElementById("inp").value;
var letters = word.split('');
clearInterval(interval); //clear the previos interval
i = 0; //start from the first index
interval = setInterval(function() {
document.getElementById("div").innerHTML = letters[i];
i = ++i < word.length ? i : 0; //if the last char is shown start from beginning
}, 500);
}
<input type="text" id="inp" />
<button onclick="show()">Show</button>
<br>
<div id="div"></div>
代码的唯一问题是使用数组的push方法或使用索引来分配字母:
function show() {
var word = document.getElementById("inp").value;
var letters = [];
for (i = 0; i <= word.length; i++) {
letters[i] = word.substring(i, i + 1);
}
document.getElementById("div").innerHTML = letters[0];
}
//setInterval();
<input type="text" id="inp" />
<button onclick="show()">Show</button>
<br>
<div id="div"></div>
相关文章:
- AngularJS:在ng-reeat中从php输出数组(带键)
- 输出数组变量javascript
- .each() 函数只输出数组中的最后一个结果
- 对象的输出数组 javascript
- 以字母顺序输出数组
- PHP MySQL 输出数组与 JavaScript json_encode不产生输出
- 如何将特定的Java脚本对象传递给PHP,而不输出“数组”
- 如何在不向输出数组获取空值的情况下拆分字符串
- 使用for循环输出数组
- javascript函数中奇怪的控制台输出数组和array.pop()
- 如何通过输出数组每行的一个属性来运行htmlenties()
- 输出数组的索引
- 拆分运算符上的数学表达式,并将运算符包含在输出数组中
- 如何使用JavaScript输出数组中出现的次数
- 输出数组的值
- 如何在html表中输出数组的内容,同时使用jQuery
- 输出数组中每个元素右边最大的元素
- 如何在Javascript中输出数组中30个不同数字中的7个数字的所有可能组合?
- 用JS输出数组数据
- 向Json对象添加数组将输出数组数组,而不是一个值数组(使用Jquery)