window.onload = function () { var Ul = document.getElementsByTagName('ul')[1]; var oLi =Ul.getElementsByTagName('li'); var oLi2 =Ul.getElementsByTagName('li')[2]; addClass(oLi2,'d');//这个没问题 for(var i = 0; i <= oLi.length; i++){ addClass(oLi[i],'d'); removeClass(oLi[i],'c'); } //这一块代码有问题,不知道原因 function hasClass( elements,cName ){ return !!elements.className.match( new RegExp( "(\\s|^)" + cName + "(\\s|$)") ); }; function addClass( elements,cName ){ if( !hasClass( elements,cName ) ){ elements.className += " " + cName; }; }; function removeClass( elements,cName ){ if( hasClass( elements,cName ) ){ elements.className = elements.className.replace( new RegExp( "(\\s|^)" + cName + "(\\s|$)" )," " ); }; }; }
1 回答
HUH函数
TA贡献1836条经验 获得超4个赞
这个很明显啊
for(var i = 0; i <= oLi.length-1; i++){//注意:length-1 而不是 length addClass(oLi[i],'d'); removeClass(oLi[i],'c');}
循环的判断条件有问题,你一共有oLi.lenght
个元素,从0
开始,到oLi.length-1
就够了。
这样导致oLi[oLi.length]
的值为undefined
,后面又读取它的属性,报错
添加回答
举报
0/150
提交
取消