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

    <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>

 


无节操司机
浏览 1813回答 2
2回答

闹小志

代码原意应该是想把所有的class都移除掉。但是在原生js中,className替换的是整个class属性,所以实际上此处这句:oList[n].className = " ";//将class属性置空,即移除了所有的属性在代码中并没有意义,因为就算不清空,后面的:oDiv[n].className = "hide"//将class属性的值设置为hide这句也用“hide”把所有替换掉了。个人理解。

火丁啊

并不是什么都没有 是个空字符串 空字符串并不是什么都没有 什么都没有是null 这个概念很重要 你的代码不全 它的意思应该就是先设置这个元素的class的值为空
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript