js更改css class属性
答案:5 悬赏:40 手机版
解决时间 2021-03-27 02:18
- 提问者网友:轻浮
- 2021-03-26 05:22
js更改css class属性
最佳答案
- 五星知识达人网友:不如潦草
- 2021-03-26 06:58
更改一个标签的 class 属性的代码是:
document.getElementById( id ).className = 字符串;
document.getElementById( id ) 用于获取标签对应的 DOM 对象,你也可以用其它方法获取。className 是 DOM 对象的一个属性,它对应于标签的 class 属性。字符串 是 class 属性的新值,它应该是一个已定义的CSS选择符。
class 属性是在标签上引用样式表的方法之一,它的值是一个样式表的选择符,如果改变了 class 属性的值,标签所引用的样式表也就更换了,所以这属于第一种修改方法。
利用这种办法可以把标签的CSS样式表替换成另外一个,也可以让一个没有应用CSS样式的标签应用指定的样式。
举例:
代码如下:
欢迎光临!
document.getElementById( id ).className = 字符串;
document.getElementById( id ) 用于获取标签对应的 DOM 对象,你也可以用其它方法获取。className 是 DOM 对象的一个属性,它对应于标签的 class 属性。字符串 是 class 属性的新值,它应该是一个已定义的CSS选择符。
class 属性是在标签上引用样式表的方法之一,它的值是一个样式表的选择符,如果改变了 class 属性的值,标签所引用的样式表也就更换了,所以这属于第一种修改方法。
利用这种办法可以把标签的CSS样式表替换成另外一个,也可以让一个没有应用CSS样式的标签应用指定的样式。
举例:
代码如下:
欢迎光临!
全部回答
- 1楼网友:神的生死簿
- 2021-03-26 11:03
document.getElementByTag('nav-down')你这个获得的是数组吧。。
document.getElementByTag('nav-down')[0].style.top="100px";试试这个追问为啥说不支持此属性或方法追答搞了半天是getElementsByTagName()
你调试一下,看看这个document.getElementsByTagName('nav-down')[0]对象有没有获取到。。。追问[0]是不对的,那样得到的是个对象,方法看来也行,谢谢你追答那你就循环这个数组吧,再判断className。。。
document.getElementByTag('nav-down')[0].style.top="100px";试试这个追问为啥说不支持此属性或方法追答搞了半天是getElementsByTagName()
你调试一下,看看这个document.getElementsByTagName('nav-down')[0]对象有没有获取到。。。追问[0]是不对的,那样得到的是个对象,方法看来也行,谢谢你追答那你就循环这个数组吧,再判断className。。。
- 2楼网友:玩世
- 2021-03-26 10:05
给这个元素加个id,例如,设置id=outNav,然后用document.getElementById("outNav")来获取对象,再进行下一步的操作
另,currentStyle应该是IE专用的吧,它的兼容性不好追问你说的没错,我就是针对IE距离显示问题做特殊调整的,因为有多处用到此class,单独修改一处ID没有实际效果意义,最优的做法是修改这个class,我是ie检测的,若是ie的话,既修改此class追答getElementsByTagName是用来获取所有同tag的元素并存入数组,不能获取相同class元素,
有一个getElementsByClassName,但是不支持IE浏览器
你可以这样子,先使用getElementsByTagName("*")取出文档中所有元素,然后进行遍历,查找className=="nav-down"的,然后再进行下一步操作
另,currentStyle应该是IE专用的吧,它的兼容性不好追问你说的没错,我就是针对IE距离显示问题做特殊调整的,因为有多处用到此class,单独修改一处ID没有实际效果意义,最优的做法是修改这个class,我是ie检测的,若是ie的话,既修改此class追答getElementsByTagName是用来获取所有同tag的元素并存入数组,不能获取相同class元素,
有一个getElementsByClassName,但是不支持IE浏览器
你可以这样子,先使用getElementsByTagName("*")取出文档中所有元素,然后进行遍历,查找className=="nav-down"的,然后再进行下一步操作
- 3楼网友:傲气稳了全场
- 2021-03-26 08:44
提示对象不支持此属性和方法,首先你的document.getElementsByTagName(“element”),这个方法拼写错误,当然会报错了!
还有就是这个方法返回的是一个节点集合。你需要确定把这个样式用在哪个元素上面!
document.getElementById('ID').style.top='100px';
嗯,这样说不清楚了,给代码帮你解决……追问我忘了说了,要是ID就好办了,因为下面还有几个这样的class调用,我要一起改,不能用ID,我记得有getElementByTag的,怎么不能用了,最终我想改了这个class的top属性,而不是具体哪一个ID追答你这样吧!
//首先得到菜单栏的节点集合(把element换成你下拉的元素)
var menu = document.getElementsByTagName(“element”)
//然后遍历循环所以的节点,当鼠标点击的时候触发事件
for(var i=0 ; i meun[i].onclick=function(){change(this);}
}
function change(obj){
obj.style.top="100px"
}
还有就是这个方法返回的是一个节点集合。你需要确定把这个样式用在哪个元素上面!
document.getElementById('ID').style.top='100px';
嗯,这样说不清楚了,给代码帮你解决……追问我忘了说了,要是ID就好办了,因为下面还有几个这样的class调用,我要一起改,不能用ID,我记得有getElementByTag的,怎么不能用了,最终我想改了这个class的top属性,而不是具体哪一个ID追答你这样吧!
//首先得到菜单栏的节点集合(把element换成你下拉的元素)
var menu = document.getElementsByTagName(“element”)
//然后遍历循环所以的节点,当鼠标点击的时候触发事件
for(var i=0 ; i
}
function change(obj){
obj.style.top="100px"
}
- 4楼网友:冷風如刀
- 2021-03-26 08:25
既然有class标签了为什么不再css里面改呢追问css里无法进行浏览器检查,我在对IE的时候存在异常,所以只能在js中检查并修改,但修改好像没想像中的容易追答不出意外 就是ie6 IE7 出问题是吧 用hack就能轻松解决
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯