TypeError:slides.forEach不是函数

问题描述 投票:0回答:1

我最近开始学习JS库,并尝试使它们处于活动状态时将按钮(单击点时向下滑动的幻灯片)变白。

我得到这个错误:

TypeError:slides.forEach不是函数

我的代码是:

function init() {
	// wrapper function
	const slides = document.querySelectorAll(".slide");
	const pages = document.querySelectorAll(".page");
	const backgrounds = [
		`radial-gradient(#2B3760, #0B1023)`, 
		`radial-gradient(#4E3022, #161616)`,
		`radial-gradient(#4E4342, #161616)`
	];

	slides.forEach((slide, index) => {
		slide.addEventListener("click", function(){
			changeDots(this);
		});
	});

	function changeDots(dot) {
		slides.forEach(slide => {
			slide.classList.remove("active");
		});
		dot.classList.add("active");
	}
}

init();

我做错了什么?我猜这是关于Arrows的,但是仍然不明白为什么我的朋友可以运行它并且它起作用,而对我来说却没有。 (我将GSAP中的TweenMax.min.js和TimelineMax.min.js添加到了我的html中)[在此之前,我遇到了“ querySelectorALL”相同的问题,我删除了“ ALL”,Chrome停止喊它也不是函数。

谢谢!

javascript gsap
1个回答
0
投票

因为不是array,所以必须使用querySelectorAll

const nodes = document.querySelectorAll(".slide");
nodes.forEach.call(nodes, node => {
  console.log(node.innerHTML)
});
<div class="slide">
  1st slide
</div>

<div class="slide">
  2nd slide
</div>
© www.soinside.com 2019 - 2024. All rights reserved.