为什么不能用这个?http://www.imooc.com/video/3233

来源:4-1 细节优化及扩展(一)

飞天意大利面神兽

2016-07-08 16:24

    function getclsname(clsname,parent){
    	var oparent=parent?document.getElementById(parent):document,
    		eles=[],
    		elements=oparent.getElementsByTagName('*');
    	for(var i=0;i<elements.length;i++){
    		if(elements[i].className==clsname){
    			eles.push(elements[i]);
    		}
    	}
    	return eles;
    }
    function getstyle(ele,sty){
    	if(ele.currentStyle){
    		return ele.currentStyle[sty];
    	}else{
    		return window.getComputedStyle(ele,null)[sty];
    	}
    }
    
    
        window.onload = function () {
        	var lis=document.getElementsByTagName('li');
        	//console.log(getclsname('toptitle',null)[0]);
        	var div_1=getclsname('toptitle',null)[0];//document.getElementsByTagName('ul')[0].getElementsByTagName('div')[0],
        		wd=parseInt(getstyle(div_1,'height'));
        	for(var i=0;i<lis.length;i++){
        		lis[i].onmouseover=function(){
        			this.getElementsByTagName('div')[0].style.display='block';
        			this.getElementsByTagName('span')[0].className='my_span';
        			var a=this.getElementsByTagName('div')[0].offsetHeight;
        			//var a=this.getclsname('submenu',null)[0];
        			console.log(a);
        		}
        		lis[i].onmouseleave=function(){
        			this.getElementsByTagName('div')[0].style.display='none';
        			this.getElementsByTagName('span')[0].className='';
        		}
        		var h=i*parseInt(getstyle(lis[i],'height'))+wd;
        	}
        }

这一段的,this.getclsname('submenu',null)[0];,

这句会报错:Uncaught TypeError: this.getclsname is not a function,

如果换成了,this.getELementsByTagName('div')[0]就没有问题呢?

非常感谢!

写回答 关注

1回答

  • orange_cheng
    2016-07-08 20:40:16

    var _this=this;

    getclsname('submenu',_this)[0]  这样可以么 ?我也没试过啊  那个有onmouseleave事件吗 ?

    orange... 回复飞天意大利面...

    我的意思是一个元素的类名有多个,是这样的 如 class=“name1 name2 name3", 而不是多个元素拥有相同的classname,加[]能选中多个元素拥有相同classname的其中一个元素 ,但当一个元素含有多个classname的情况时,好像 就出问题了

    2016-07-09 14:47:19

    共 5 条回复 >

商城分类导航效果

两种方法实现分类导航,同时扩展讲解其它商城分类导航的制作方法

63737 学习 · 276 问题

查看课程

相似问题