調(diào)試說(shuō)obj.getElementsByTagName is not a function,怎么解決?
window.onload?=?function(){ window.onscroll?=?function(){ var?top?=?document.documentElement.scrollTop?||?document.body.scrollTop; var?menus?=?document.getElementById('menu').getElementsByTagName('a'); var?items?=?getByClassName("document.getElementById('content')",'item'); var?currentId?=?""; /*console.log(top);*/ for?(var?i?=?0;?i?<?items.length;?i++)?{ var?_item?=?items[i]; var?_itemTop?=?_item.offSet; if(top?>?_itemTop?-200){ currentId?=?_item.id; }else{ break; } } if(currentId){ for?(var?j?=?0;?j?<?menus.length;?j++)?{ var?_menu?=?menus[i]; var?_href?=?_menu.href.split('#'); if(_href[_href.length-1]?!=??currentId){ removeClass('_menu','current'); }else{ addClass('_menu','current'); } } } } } /*根據(jù)className找元素*/ function?getByClassName(obj,cls){ var?elements?=?obj.getElementsByTagName('*'); var?result?=?[]; for?(var?i?=?0;?i?<?elements.length;?i++)?{ if(elements[i].className?==?cls){ result.push(elements[i]); } } return?result; } function?hasClass(obj,cls)?{ return?obj.className.match(new?RegExp("(\\s|^)"+cls+"(\\s|$)")); } function?removeClass(obj,cls)?{ if(hasClass(obj,cls)){ var?reg?=?new?RegExp("(\\s|^)"+cls+"(\\s|$)"); obj.className?=?obj.className.replace(reg,""); } } function?addClass(obj,cls)?{ if(!hasClass(obj,cls)){ obj.className?+=?"?"?+?cls; } }
這句話我的拼寫(xiě)沒(méi)錯(cuò)誤???
2016-07-24
好多錯(cuò)誤??!
第一這里用了雙引號(hào)括住導(dǎo)致變了字符串,所有g(shù)etByClassName函數(shù)解釋不到對(duì)象OBJ所以報(bào)錯(cuò),
這里獲取了item的偏移值,但沒(méi)獲取偏移的高應(yīng)該.offsetTop
這一段兩處錯(cuò)誤,變量值為j,你卻引用了i,導(dǎo)致循環(huán)都沒(méi)用的情況_menu獲取不到對(duì)象,應(yīng)該menu[j];
removeClass和addClass函數(shù)都用obj參數(shù)都用了單引號(hào)寫(xiě)成字符串 也是沒(méi)對(duì)象