switch语句里的变量cur递增,重复执行可以依次输出递增值if else 只输出1为啥?

btnContainer.addEventListener("click", function (e) { if (e.target.classList.contains("next")) { let cur = 1; // switch (cur) { // case 1: // console.log(cur); // cur++; // break; // case 2: // console.log(cur); // cur++; // break; // case 3: // console.log(cur); // cur++; // break; // } if ((cur = 1)) { console.log(cur); cur++; } else if ((cur = 2)) { console.log(cur); cur++; } else if ((cur = 3)) { console.log(cur); cur++; } }

img

cur放外面而且=号改为==,你原来的代码是直接给cur赋值1,1为true所以一直执行第一个if判断

 if ((cur == 1)) {//改为==
            console.log(cur);
            cur++;
        } else if ((cur == 2)) {//改为==
            console.log(cur);
            cur++;
        } else if ((cur == 3)) {//改为==
            console.log(cur);
            cur++;
        }

帮助到你能点个采纳吗,谢谢~

let cur = 1; // 放在事件外面

```

```btnContainer.addEventListener("click", function (e) { if (e.target.classList.contains("next")) { let cur = 1; // switch (cur) { // case 1: // console.log(cur); // cur++; // break; // case 2: // console.log(cur); // cur++; // break; // case 3: // console.log(cur); // cur++; // break; // } if ((cur = 1)) { console.log(cur); cur++; } else if ((cur = 2)) { console.log(cur); cur++; } else if ((cur = 3)) { console.log(cur); cur++; }