titles循环不出来,怎么回事?

来源:1-4 js实现切换效果

HeyLuckyGirl

2016-01-07 22:54

window.onload=function(){
   //获取鼠标滑过的元素标签以及内容
   var titles=$('notice-tit').getElementsByTagName('li'),
           divs=$('notice-con').getElementsByTagName('li');
   alert(titles.length);
   if(titles.length!=divs.length) return;
   //遍历titles下的所有li
   for(var i=0;i<titles.length;i++){
       titles[i].id=i;
       alert(i);
       titles[i].onmouseover=function(){
           this.className="select";
       }
   }
}

数组的长度可以alert出来,但是for循环里不好用 为什么?

写回答 关注

4回答

  • x兔子
    2016-01-07 23:27:35
    已采纳

    return的话后面就不执行了

    HeyLuc... 回复x兔子

    不执行

    2016-01-09 22:20:51

    共 4 条回复 >

  • 产品经理哦
    2016-02-29 02:26:59

    当在一个函数里面执行 return 语句时,该函数将会停止执行。一个指定的值将会被返回给函数调用者。如果未指定返回表达式,则返回 undefined.详情请看:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/return

  • echo_kinchao
    2016-01-08 10:05:10

    要循环数组里面的属性

  • CrossingMay
    2016-01-08 09:43:08

    我试了下,不是return的问题。alert(i)能执行。你把alert换成console.log,在控制台做调试。你可以发现控制台信息是3,0,1,2,也就是t.length和后面for里的讯息。查看dom树你还能看到新增的className,我不太明白你说的不起作用是啥意思。明显起作用了。只不过你还没写完整呀!

    按照你这么写,你鼠标移到标题上的时候,对应的title也增加了select的className,如果你要避免这个情况,你应该在上面增加一个初始化的循环。

    for(var i = 0;i<titlee.length;i++){titles[i].className = "";}

    当然,对于整道题目来说,这仍然只是一部分。但是逻辑方面都差不多,你可以参考其他同学的代码。或者继续提问。

    HeyLuc...

    应该是程序还没写完整的原因。 写完整之后,是可以alert的,谢谢~

    2016-01-09 22:25:10

    共 1 条回复 >

Tab选项卡切换效果

本课程详细介绍网页页面中最流行常用的tab切换效果

65465 学习 · 581 问题

查看课程

相似问题