我每次在输入字段中写'yes'时都试图递增一个变量,但n
值在控制台中始终保持为'1'。
$('#txt').on('keyup', function() {
let n = 0;
if($(this).val() == 'yes') {
n++;
console.log("You wrote 'yes' " + n + " times");
}
});
我在这里遗漏了一些东西,但我不知道是什么。如何继续增加n
?
答案 0 :(得分:5)
每次点击都会重置n
变量,因为它是处理程序中的。因此,每次运行该处理程序时,都会使用初始值创建一个新变量。在事件处理程序之外声明并初始化它:
let n = 0;
$('#txt').on('keyup', function() {
if($(this).val() == 'yes') {
n++;
console.log("You wrote 'yes' " + n + " times");
}
});
这样,每次点击时,变量都不会被重新声明并初始化为0,它存在于处理程序之外。
答案 1 :(得分:1)
这是因为你在听众中声明了变量。把它放在你的听众之外。
答案 2 :(得分:1)
声明n
外部事件处理程序,如下所示:
let n =0;
$('#txt').on('keyup',function(){
if($(this).val()=='yes'){
n++;
console.log("You wrote 'yes' " +n+ " times");
}
})
答案 3 :(得分:1)
范围?只需将变量n放在事件回调之外;)