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

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

原生js代碼報錯問題

原生js代碼報錯問題

慕前端8664132 2017-05-05 23:42:32
<!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>以上代碼可以直接復制運行的。我想表達的都已經弄到注釋中了。
查看完整描述

3 回答

?
俠客中的王者

TA貢獻2條經驗 獲得超1個贊

首先this的指向就有誤, jquery剛開始要調用構造函數生成jquery對象,然后它的鏈式調用每次都要返回this.

查看完整回答
1 反對 回復 2017-05-08
?
后知后覺88

TA貢獻39條經驗 獲得超10個贊


首先? 你沒有引入jq文件? 所有不能直接用 jq里邊的方法? 也就是addClass( )

還有就是 要轉換成jq對象 才能用jq的方法? 也就是$(this).addClass( )

做好這兩步?? 不會報錯了?

你說的想封裝自己的jq方法? 當然可以? 慕課網有好多講這個的視頻? 自己可以搜搜看看

查看完整回答
反對 回復 2017-05-07
  • 慕前端8664132
    慕前端8664132
    我的目的是用原生來封裝一個屬于自己的addClass 現在你能幫我解決這個bug嗎??
  • 3 回答
  • 0 關注
  • 1467 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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