为了账号安全,请及时绑定邮箱和手机立即绑定

哪里错了??找错真的眼睛都看花了

//定义getByClassName函数,让函数实现根据class name获取对象并返回
	function getClassName(obj,cls){
	    var elements=obj.getElementsByTagName("*");
	    var result=[];
	    for(var i=0;i<elements.length;i++){
	        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 )){ 
		    //remove
			var reg = new RegExp("(\\s|^)" + cls + "(\\s|$)");
			obj.className = obj.className.replace(reg, "");
		}
	}
	
	
    //定义getByClassName函数,让函数实现给对象增加class 
    function addClass(obj,cls){
        if(!hasClass(obj,cls)){
            obj.className+=" "+cls;
        }
    }
	
	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 = "";
			
			for ( var i=0; i< items.length; i++ ){ 
			    var _item = items[i];
			    var _itemTop = _item.offsetTop;
				if( top > _itemTop - 200 ){ 
				    currentId = _item.id;
				} else { 
				    break;
				}			
			}
		
			 				
      //请补充此处代码,给正确的menu下的a元素class赋值current
      if(currentId){
          for(var j=0;j<menus.length;j++){
              var _menu=menus[j];
              var _href=_menu.href.split("#");
              if(_href[_href.length-1]!=currentId){
                  removeClass(_menu,"current");
              }else{
                  addClass(_menu."current");
              }
          }
      }
      
	
		}	
	}


正在回答

1 回答

第一段的那个没有判断

function getByClassName(obj, cls) {

            var result = [],

                eles = null;

            

            if(!obj) obj = document;

            if(obj.getElementsByClassName) {

                result = obj.getElementsByClassName(cls);

            } else {

                eles = obj.getElementsByTagName("*");

                for(var i=0; i<eles.length; i++) {

                    if(eles[i].className.indexOf(cls) != -1){

                        result.push(eles[i]);

                    }

                }

            }

            return result;

        }

最后的那个addclass应该是逗号

addClass(_menu,"current");

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪里错了??找错真的眼睛都看花了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信