为了账号安全,请及时绑定邮箱和手机立即绑定

大神能帮我仔仔细细的讲解下吗oList[n].className = " "; 它们classname后面为什么什么都没有是个“ ”啊

大神能帮我仔仔细细的讲解下吗oList[n].className = " "; 它们classname后面为什么什么都没有是个“ ”啊

无节操司机 2016-08-17 11:57:07
    <script type="text/javascript">    // JS实现选项卡切换    window.onload=function(){        var oTab = document.getElementById("tabs");        var oUl = document.getElementsByTagName("ul")[0];        var oList = document.getElementsByTagName("li")        var oDiv = oTab.getElementsByTagName("div")                for(var i=0;i<oList.length;i++){            oList[i].index = i;            oList[i].onclick = function(){                for(var n=0;n<oList.length;n++){                    oList[n].className = " ";                    oDiv[n].className = "hide";//这里选项卡,怎么做到只显示一个,隐藏其他的呢                                    }            this.className = "on";//这里的作用是用来干嘛的啊            oDiv[this.index].className = " ";//这里也一样            }        }    }        </script> 
查看完整描述

2 回答

已采纳
?
闹小志

TA贡献75条经验 获得超42个赞

代码原意应该是想把所有的class都移除掉。但是在原生js中,className替换的是整个class属性,所以实际上此处这句:

oList[n].className = " ";//将class属性置空,即移除了所有的属性

在代码中并没有意义,因为就算不清空,后面的:

oDiv[n].className = "hide"//将class属性的值设置为hide

这句也用“hide”把所有替换掉了。

个人理解。

查看完整回答
反对 回复 2016-08-17
  • 无节操司机
    无节操司机
    设oDiv[n].className = "hide" 的话,应该是吧div给隐藏了吧,关键是它怎么做到点击一个选项卡只显示它的div却不显示其他两个被隐藏的div呢
  • 闹小志
    闹小志
    啊 看错了 一个是oList 一个是oDiv 但是原理不影响 在我上面的回答中div不是都被隐藏了吗 此时它自己对应的div也是隐藏的 所以让它自己对应的div显示的奥妙在这里:oDiv[this.index].className = " "; 这段代码把当前点击的这个tab对应的div的className置空了 也就是移除了隐藏 就显示啦~这里注意一下index这个索引 目测应该是按顺序来控制显示和隐藏 但是实际上这种复用性会比较差 建议可以用class啊之类的 总之 先把这个搞明白 之后可以再优化
  • 无节操司机
    无节操司机
    我突然明白了,真是茅塞顿开啊,谢谢这位大神了 oList[i].onclick = function(){ for(var n=0;n<oList.length;n++){ oList[n].className = " "; oDiv[n].className = "hide";}这个应该事在点击时把所有div内容给隐藏了 然后再通过oDiv[this.index].className = " "; 把被全部隐藏div内容,通过oList[i]点击对应选项卡的div内容给再次显示出来这样就可以把其他两个div的内容给隐藏了,哈哈哈\( ^▽^ )/
点击展开后面1
?
火丁啊

TA贡献14条经验 获得超6个赞

并不是什么都没有 是个空字符串 空字符串并不是什么都没有 什么都没有是null 这个概念很重要 你的代码不全 它的意思应该就是先设置这个元素的class的值为空

查看完整回答
反对 回复 2016-08-17
  • 无节操司机
    无节操司机
    那设这个元素class值为空的作用是什么呢,代码确实不全,我只选取了javascript那一部分代码
  • 2 回答
  • 1 关注
  • 1696 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信