不给下面递增值为什么

不给下面递增值为什么

 //封装一个代替getElementById()的方法

 function byId(id){

  return typeof(id)==="string"?document.getElementById():id;   //判断类型为id   三等号判断id值得时候判断类型如果 他是字符串 三元操作符

 }

 //全局变量

    var index=0,

timer=null;     //加定时器

function slideImg(){

var main=byId("main");

//滑过清除定时器,离开继续

main.onmouseover=function(){

//滑过清除定时器

}

main.onmouseout=function(){

timer=setInterval(function(){

index++;

console.log(index);

},3000);

}

}


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

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

5回答
好帮手慕糖 2018-09-12 16:16:22

你好,安装上图修改之后,还会报错吗?这个报错是因为byId("banner")没有获取到,没获取到的原因就是上面说的第二条,banner在HTML中设置的是类,不能使用id的方式获取。

祝学习愉快~

好帮手慕糖 2018-09-12 15:10:56

你好,1、如下,HTML中多了一个“/”

http://img1.sycdn.imooc.com//climg/5b98bae0000191a303130068.jpg

2、banner在HTML中设置的是类,不能使用id的方式获取,建议:可以设置下id,或者使用类名的方式获取。

http://img1.sycdn.imooc.com//climg/5b98bb19000104e103160043.jpg

http://img1.sycdn.imooc.com//climg/5b98bb220001692903150058.jpg

3、计时器是存放在鼠标移出事件中的,要鼠标移出才能触发,要是想打开页面就触发的话,可以调用下。例:

http://img1.sycdn.imooc.com//climg/5b98bb500001e50a04710528.jpg

若能帮助到你,望采纳。

祝学习愉快!

  • 提问者 慕斯卡9565767 #1
    pics=byId("banner").getElementsByTagName("div"); //这里报错误
    2018-09-12 15:26:20
  • 提问者 慕斯卡9565767 #2
    报错如下:script.js:8 Uncaught TypeError: Cannot read property 'getElementsByTagName' of null at script.js:8
    2018-09-12 15:31:28
提问者 慕斯卡9565767 2018-09-12 14:58:53

<div class="main" id="main">

<!--图片轮播-->

<div class="banner">

<a href="#">

<div class="banner_slide slide1 slide-active "></div>

</a>

<a href="#">

<div class="banner_slide slide2"></div>

</a>

<a href="#">

<div class="banner_slide slide3"></div>

</a>

</div>

<!--上一张、下一张按钮-->

<a href="javascript:void(0)" class="button prev"></a>    <!--意思是A标签不做任何跳转javascript:void(0)-->

<a href="javascript:void(0)" class="button next"></a>    <!--意思是A标签不做任何跳转javascript:void(0)-->

<!--圆点导航-->

/<div class="dots">

<span class="active"></span>

<span></span>

<span></span>

</div>

</div> 


css样式

/*banner主体开始*/

.banner{

width:1200px;

height:460px;

overflow:hidden;   /*1.显示/2.隐藏*/

position:relative; /*相对定位*/

}

/*设置图片大小*/

.banner_slide{

width:1200px;

height:460px;

position:absolute;  /*绝对定位*/

background-repeat:no-repeat;   /*图片不重复显示*/

display:none;  /*隐藏*/

}

.slide-active{

display:block;

}

/*轮播图片开始*/

.slide1{

background-image:url(../img/bg1.jpg) ;

}

.slide2{

background-image:url(../img/bg2.jpg) ;

}

.slide3{

background-image:url(../img/bg3.jpg) ;

}



//封装一个代替getElementById()的方法

 function byId(id){

  return typeof(id)==="string"?document.getElementById(id):id;   //判断类型为id   三等号判断id值得时候判断类型如果 他是字符串 三元操作符

 }

 //全局变量

    var index=0,

timer=null;     //加定时器

pics=byId("banner").getElementsByTagName("div");

len=pics.length;

function slideImg(){

var main=byId("main");

//滑过清除定时器,离开继续

main.onmouseover=function(){

//滑过清除定时器

}

main.onmouseout=function(){

timer=setInterval(function(){

index++;

console.log(index);

if(index>=len){

index=0;

}

},2000);

}

}

slideImg();


提问者 慕斯卡9565767 2018-09-12 14:56:40

script.js:8 Uncaught TypeError: Cannot read property 'getElementsByTagName' of null

    at script.js:8


好帮手慕糖 2018-09-12 14:48:27

你好,是指index的值,不会改变吗?这里只有部分代码无法进行判断,建议:可以将全部的代码粘贴过来,便于测试与解决问题。

祝学习愉快!

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

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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