亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

大神能幫我仔仔細細的講解下嗎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"http://將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 關注
  • 1883 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號