这是正确的,可以实现点击图片轮播按钮后,图片切换,n限制为5是因为只有5张图片 <body> <div class=“container”> <img src="./images/1.jpg"> </div> <br> <button onclick=“test1()” class=“btn btn-success”>图片轮播</button> <script> let n = 2 //改变图片的地址 function showImg() { console.log(‘7777’) if (n >= 5) { n = 1 } document.getElementsByTagName(“img”)[0].src = ‘./images/’ + n + '.jpg’ n++; } //每秒运行一次改变图片地址的函数 function test1() { window.setInterval(“showImg()”, 1000) } </Script> </body> 有一个小问题,我想把整个轮播函数包起来,点击后报错,有点不明白,效果应该是一样的才对, <body> <div class=“container”> <img src="./images/1.jpg"> </div> <br> <button onclick=“test1()” class=“btn btn-success”>图片轮播</button> <script> function test1() { let n = 2 //改变图片的地址 function showImg() { console.log(‘7777’) if (n >= 5) { n = 1 } document.getElementsByTagName(“img”)[0].src = ‘./images/’ + n + '.jpg’ n++; } //每秒运行一次改变图片地址的函数 //function test1() { window.setInterval(“showImg()”, 1000) } </Script> </body>
第一种写法,点击函数,每秒运行一次改变图片地址的函数。第二种写法,点击函数,每秒调用一次改变图片的函数,根据报错来看,好像这个改变地址的函数是错误的
应该是字符串编译后作用域变了,setInterval一般不这么用你可以改成
window.setInterval(showImg, 1000)