每次触发事件并显示值时增加var

nas*_*971 2 javascript jquery

我每次在输入字段中写'yes'时都试图递增变量,但是n控制台中的值始终保持为'1'.

$('#txt').on('keyup', function() {
    let n = 0;
    if($(this).val() == 'yes') {
        n++;
        console.log("You wrote 'yes' " + n + " times");
    }
});
Run Code Online (Sandbox Code Playgroud)

我在这里遗漏了一些东西,但我不知道是什么.我如何继续增量n

Li3*_*357 5

n每次单击时都会重置变量,因为它位于处理程序内部.因此,每次运行该处理程序时,都会使用初始值创建一个新变量.在事件处理程序之外声明并初始化它:

let n = 0;
$('#txt').on('keyup', function() {
  if($(this).val() == 'yes') {
    n++;
    console.log("You wrote 'yes' " + n + " times");
  }
});
Run Code Online (Sandbox Code Playgroud)

这样,每次单击时,变量都不会重新声明并初始化为0,它存在于处理程序之外.