为什么我的幻灯片中出现只读错误?
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
语句定义 myIndex
。 const
创建一个常量;也就是说一个值在第一次初始化后不能改变。
执行 myIndex ++
时抛出错误,它试图增加存储的值。
而不是 const
,使用 let
或 var
:
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.
我的网站上有一个小滑块,它一直运行良好,但现在出现此错误:
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
语句定义 myIndex
。 const
创建一个常量;也就是说一个值在第一次初始化后不能改变。
执行 myIndex ++
时抛出错误,它试图增加存储的值。
而不是 const
,使用 let
或 var
:
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.