在每个按键上更改单词javascript/jquery
我是javascript/jquery新手,遇到以下问题: 我想在按下“a”或“l”时更改HTML段落元素“abc”的值 代码可以工作,但只执行一次。我的目标是改变“abc”元素,比如说,20次,每次从“newwords”中选择一个元素 也许我忘了在什么地方打圈了 html:在每个按键上更改单词javascript/jquery,javascript,jquery,keypress,Javascript,Jquery,Keypress,我是javascript/jquery新手,遇到以下问题: 我想在按下“a”或“l”时更改HTML段落元素“abc”的值 代码可以工作,但只执行一次。我的目标是改变“abc”元素,比如说,20次,每次从“newwords”中选择一个元素 也许我忘了在什么地方打圈了 html: 如果您打算使用Jquery,请坚持使用它。容易多了 $("#abc").text(rand_new); 如果您打算使用Jquery,请坚持使用它。容易多了 $("#abc").text(rand_new); 因此,您可
如果您打算使用Jquery,请坚持使用它。容易多了
$("#abc").text(rand_new);
如果您打算使用Jquery,请坚持使用它。容易多了
$("#abc").text(rand_new);
因此,您可以检查按键是否为
'a'
或'i'
,如果是,则将#abc
容器中的文本设置为rand\u new
中的值。它实际上每次都在工作,但是,rand_new
的值没有改变,因为它只设置了一次。每次按下a
或i
时,您需要设置rand\u new
。因此,只要做一个简单的更改,您就可以:
...
if (e.which === 97 || e.which === 108) {
rand_new = newwords[Math.floor(Math.random() * newwords.length)];
$("#abc").text(rand_new);
};
...
这样,您每次都会更新值。因此,您可以检查按键是否为
'a'
或'i'
,如果是,则将\abc
容器中的文本设置为rand\u new
中的值。它实际上每次都在工作,但是,rand_new
的值没有改变,因为它只设置了一次。每次按下a
或i
时,您需要设置rand\u new
。因此,只要做一个简单的更改,您就可以:
...
if (e.which === 97 || e.which === 108) {
rand_new = newwords[Math.floor(Math.random() * newwords.length)];
$("#abc").text(rand_new);
};
...
这样,您每次都在更新值。并不是您的代码只工作一次,您的问题是您只生成一次随机数,所以您总是得到相同的结果。将数字生成移动到函数中,它就会工作:
var newwords = ["NEWWORD1", "NEWWORD2", "NEWWORD3"];
$(document).keypress(function(e){
if ($(e.target).is('input, textarea')) {
return;
};
var rand_new = newwords[Math.floor(Math.random() * newwords.length)];
if (e.which === 97 || e.which === 108) {
document.getElementById("abc").firstChild.nodeValue = rand_new;
};
});
jsfdle:不是因为代码只工作一次,而是因为您只生成一次随机数,所以总是得到相同的结果。将数字生成移动到函数中,它就会工作:
var newwords = ["NEWWORD1", "NEWWORD2", "NEWWORD3"];
$(document).keypress(function(e){
if ($(e.target).is('input, textarea')) {
return;
};
var rand_new = newwords[Math.floor(Math.random() * newwords.length)];
if (e.which === 97 || e.which === 108) {
document.getElementById("abc").firstChild.nodeValue = rand_new;
};
});
jsiddle:您只在第一次加载时生成随机字-将其转换为函数,它应该可以工作:
var newwords = ["NEWWORD1", "NEWWORD2", "NEWWORD3"];
function rand_new() {
return newwords[Math.floor(Math.random() * newwords.length)];
}
$(function(){
$(document).keypress(function(e){
if ($(e.target).is('input, textarea')) {
return;
};
if (e.which === 97 || e.which === 108) {
document.getElementById("abc").firstChild.nodeValue = rand_new();
};
});
});
您仅在第一次加载时生成随机字-将其转换为函数,它应该可以工作:
var newwords = ["NEWWORD1", "NEWWORD2", "NEWWORD3"];
function rand_new() {
return newwords[Math.floor(Math.random() * newwords.length)];
}
$(function(){
$(document).keypress(function(e){
if ($(e.target).is('input, textarea')) {
return;
};
if (e.which === 97 || e.which === 108) {
document.getElementById("abc").firstChild.nodeValue = rand_new();
};
});
});