请查看以下代码:
var words = [];
var temp_words =[];
var div = document.getElementById('div');
document.onkeypress = function(evt) {
evt = evt.keyCode;
var event = String.fromCharCode(evt);
// alert(event);
temp_words.push(event);
var w = temp_words.join("");
words.push(w);
}
HTML
现在在谷歌控制台中,我看到了结果。
如果我输入textarea sanmevg saini,那么words
数组将返回:
["s", "sa", "san", "sanm", "sanme", "sanmev", "sanmevg", "sanmevg ", "sanmevg s", "sanmevg sa", "sanmevg sai", "sanmevg sain", "sanmevg saini"]
不是["sanmevg saini"]
如果我写[''a,'b','c', ' ','d' ].join('')
,则返回预期结果,即
['abc d']
。那么我的代码中的问题是什么?
答案 0 :(得分:1)
没有必要使用var temp_word,var字就足够了。每次按一个键时,word数组都会存储temp_word的合并值,这样你就会得到错误的值。代码应该是这样的:
<textarea id="div"></textarea>
<script>
var words = [];
var temp_words =[];
var div = document.getElementById('div');
document.onkeypress = function(evt){
evt = evt.keyCode;
var event = String.fromCharCode(evt);
words.push(event);
div.innerHTML = words.join("")
}
</script>
我为你写了一个jsfiddle:http://jsfiddle.net/bS4WP/ 顺便说一下,你的代码很丑,缩进是错的,你的代码应该和你女朋友一样漂亮。
答案 1 :(得分:0)
每按一次键,另一个单词就会添加到words
数组中。只需使用words = temp_words.join("")
;