<!DOCTYPE html><html><head>? ? <meta charset="UTF-8">? ? <title>實踐題 - 選項卡</title>? ? <style type="text/css">? ? ?/* CSS樣式制作 */ ?? ? ? .link-info{? ? ? ? ? color:green;? ? ? ? ? background:#ddd;? ? ? ? ? border:1px solid #ddd;? ? ? ? ? padding:2px 4px;? ? ? ? ? cursor:pointer;? ? ? }?.current{background:red;color:#fff;?}? ? ? ?.wrap-row{? ? ? ? ? ?padding-top:15px;? ? ? ?}? ? </style>? ? <script type="text/javascript">? ? ? ? ?? ? // JS實現選項卡切換? ? window.onload=function(){? ? ? ? var btn=document.getElementsByClassName("link-info");? ? ? ? for(var i=0;i<btn.length;i++){? ? ? ? ??? ? ? ? ? ? btn[i].onclick=function(e){? ? ? var target=e.target.className;//target.className.addClass("current"); //這也會報下面一樣的錯。this.addClass("current");//erro:Uncaught TypeError: Cannot read property 'addClass' of undefined? ? ?//麻煩各位老師能好好解釋下原理,有空也可以說說jQuer封裝的addClass為什么能直接打點號調用。怎么實現的呢? ? ? ? ? ? }? ? ? ? ? ?? ? ? ? }? ? ?function addClass(clas){//我是想模仿jQuer一樣封裝添加樣式類名的方法 想直接打點號直接調用。? ? ?if(this.className.indexOf(clas)<0){//先判斷,以防重復加同樣的類名? ? ?//var classing=classed.concat(" ");? ? ?return this.className+=""+clas;? ? ?}? ? ?? ? ?}? ??? ? ?}? ??? ? </script>?</head><body><!-- HTML頁面布局 -->? ? <div>? ? ? ? <a class="link-info one">按鈕1</a>? ? ? ? <a class="link-info two">按鈕2</a>? ? ? ? <a class="link-info three">按鈕3</a>? ? </div>? ? <div>? ? ? ? ?40平出租屋大改造 美少女的混搭小窩? ? ?經典清新簡歐愛家 90平老房煥發新生? ? ?新中式的酷色溫情 66平撞色活潑家居? ? ?瓷磚就像選好老婆 衛生間煙道的設計? ? </div>? ? <div style="display:none">? ? ? ? 275萬購昌平鄰鐵三居 總價20萬買一居? ? 200萬內購五環三居 140萬安家東三環? ? 北京首現零首付樓盤 53萬購東5環50平? ? 京樓盤直降5000 中信府 公園樓王現房? ? </div>? ? <div style="display:none">? ? ?通州豪華3居260萬 二環稀缺2居250w甩? ? ?西3環通透2居290萬 130萬2居限量搶購? ? ?黃城根小學學區僅260萬 121平70萬拋!? ? ?獨家別墅280萬 蘇州橋2居優惠價248萬? ? </div>?</body></html>以上代碼可以直接復制運行的。我想表達的都已經弄到注釋中了。
原生js代碼報錯問題
慕前端8664132
2017-05-05 23:42:32