有个下拉菜单样式,弹出来的菜单在IE下距离太大了,其它都正常,我想在IE下特殊把这个class='nav-down' 的top属性由120px改为100px怎么做
在顶上加了document.getElementByTag('nav-down').currentStyle.top='100px';
提示对象不支持此属性和方法
我忘了说了,要是ID就好办了,因为下面还有几个这样的class调用,我要一起改,不能用ID,我记得有getElementByTag的,怎么不能用了,最终我想改了这个class的top属性,而不是具体哪一个ID
追答你这样吧!
//首先得到菜单栏的节点集合(把element换成你下拉的元素)
var menu = document.getElementsByTagName(“element”)
//然后遍历循环所以的节点,当鼠标点击的时候触发事件
for(var i=0 ; i<menu.length;i++){
meun[i].onclick=function(){change(this);}
}
function change(obj){
obj.style.top="100px"
}
你说的没错,我就是针对IE距离显示问题做特殊调整的,因为有多处用到此class,单独修改一处ID没有实际效果意义,最优的做法是修改这个class,我是ie检测的,若是ie的话,既修改此class
追答getElementsByTagName是用来获取所有同tag的元素并存入数组,不能获取相同class元素,
有一个getElementsByClassName,但是不支持IE浏览器
你可以这样子,先使用getElementsByTagName("*")取出文档中所有元素,然后进行遍历,查找className=="nav-down"的,然后再进行下一步操作
为啥说不支持此属性或方法
追答搞了半天是getElementsByTagName()
你调试一下,看看这个document.getElementsByTagName('nav-down')[0]对象有没有获取到。。。
[0]是不对的,那样得到的是个对象,方法看来也行,谢谢你
追答那你就循环这个数组吧,再判断className。。。
css里无法进行浏览器检查,我在对IE的时候存在异常,所以只能在js中检查并修改,但修改好像没想像中的容易
追答不出意外 就是ie6 IE7 出问题是吧 用hack就能轻松解决
本回答被提问者采纳