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

时间:2017-03-27 14:38:47

标签: javascript html ecmascript-6 syntax-error readonly

我的网站上有一个小滑块,它总是很完美,但现在我收到了这个错误:

  

语法错误:“myIndex”是只读的

这是我的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>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您使用myIndex声明定义constconst创造一个常数;也就是说,首次初始化后无法更改的值。

执行myIndex ++时会抛出错误,const会尝试增加存储的值。

而不是let,请使用varlet myIndex = 0;

url(r'entry/list/(?P<month>\w+)$', views.EntryListView.as_view(), name='entry-list')
  

常量是块作用域的,就像使用let语句定义的变量一样。 常量的值不能通过重新分配而改变,也不能重新声明。

     

- MDN's const Documentation