5-1问题,setAttribute出现问题

5-1问题,setAttribute出现问题

// 封装getElementById
function byId(id){
	return typeof(id)==="string"?document.getElementById(id):id;
}
var index=0,
	timer=null,
	pics=byId("banner").getElementsByTagName("div"),
	dots=byId("dots").getElementsByTagName("span"),
	len=pics.length,
	prev=byId("prev"),
	next=byId("next"),
	menu=byId("menu-content"),
	menuItems=menu.getElementsByClassName("menu-item");//ie8以下不支持
function slideImg(){
	var main=byId("main");
	//滑过清除定时器,离开继续
	main.onmouseover=function(){
		//清除定时器
		if(timer)clearInterval(timer);
	}
	main.onmouseout=function(){
		//离开继续
		timer=setInterval(function(){
			index++;
			if(index>=len){
				index=0;
			}
			//切换图片
			changeImg();
		},3000);
	}
	main.onmouseout();
	//点击圆点切换图片
	for(var d=0;d<len;d++){
		//给所有span添加一个id的属性,值为d,作为当前span的索引
		dots[d].id=d;
		dots[d].onclick=function(){
			//改变index为当前的span的索引
			index=this.id;

			changeImg();
		}
	}
	//点击下一张
	next.onclick=function(){
		index++;
		if(index>=len){
			index=0;
		}
		changeImg();
	}
	//点击上一张
	prev.onclick=function(){
		index--;
		if(index<0){
			index=len-1;
		}
		changeImg();
	}
	//导航菜单
	//遍历主菜单,且绑定事件
	for(var m=0;m<menuItems.length;m++){
		menuItems[m].setAttribute("data-index,m");
		menuItems[m].onmouseover=function(){
			//给每一个menu-item设置一个data-index属性,作为索引
			var idx=this.getAttribute("data-index");
			console.log(idx)
		}
	}
}
function changeImg(){
	//遍历banneri下所有div,将其隐藏
	for(var i=0;i<len;i++){
		pics[i].style.display="none";
		dots[i].className="";
	}
	//根据index索引,找到当前div,将其显示出来
	pics[index].style.display="block";
	dots[index].className="active";
}
slideImg()

menuItems[m].setAttribute("data-index",m)这行总是报错

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 慕婉清0895596 2017-09-19 15:44:32

已解决,找到问题

提问者 慕婉清0895596 2017-09-19 15:42:06

Uncaught TypeError: Failed to execute 'setAttribute' on 'Element': 2 arguments required, but only 1 present.

这是报错代码

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师