为什么我的幻灯片中出现只读错误?

Why do I have a read-only error in my slideshow?

我的网站上有一个小滑块,它一直运行良好,但现在出现此错误:

Syntax error: "myIndex" is read-only

这是我的 JavaScript 代码:

const myIndex = 0;
carousel();

function carousel() {
 let i;
 const x = document.getElementsByClassName(`slides`);
 for (i = 0;i < x.length;i ++) {
 x[i].style.display = `none`;
 }

 myIndex ++;

 if (myIndex > x.length) {
  myIndex = 1;
 }

 x[myIndex - 1].style.display = `block`;
 setTimeout(carousel, 4000); // Change image every 2 seconds
}

这是 html:

<div class="home-slider">
  <img class="slides" src="assets/img/slide_1.jpg" alt="slide1">
  <img class="slides" src="assets/img/slide_2.jpg" alt="slide2">
  <img class="slides" src="assets/img/slide_3.jpg" alt="slide3">
</div>

我该如何解决这个问题?

您正在使用 const 语句定义 myIndexconst 创建一个常量;也就是说一个值在第一次初始化后不能改变。

执行 myIndex ++ 时抛出错误,它试图增加存储的值。

而不是 const,使用 letvar:

let myIndex = 0;

Constants are block-scoped, much like variables defined using the let statement. The value of a constant cannot change through re-assignment, and it can't be redeclared.

MDN's const Documentation