关于JS修改标签的class属性
2009-08-06 21:52
369 查看
近日,项目中,要用到动态的去修改td的class属性.
由于对JS不熟悉,调试了N久:
document.getElementById("td").class = "css_sty";
document.getElementById("td").setAttribute("calss","css_sty");
试了以上两种方法都不行.
于是在网上拼命搜索,终于找到问题所在:
由于class属于JavaScript保留值,因此当我们要操作元素的class属性值时,直接使用obj.getAttribute('class')和obj.setAttribute('class', 'value')可能会遭遇浏览器兼容性问题。
W3C DOM标准为每个节点提供了一个可读写的className属性,作为节点class属性的映射,标准浏览器的都提供了这一属性的支持,因此,可以使用e.className访问元素的class属性值,也可对该属性进行重新斌值。而IE和Opera中也可使用e.getAttribute('className')和e.setAttribute('className', 'value')访问及修改class属性值。相比之下,e.className是W3C DOM标准,仍然是兼容性最强的解决办法。
以下列表说明了上文提及的三种做法的浏览器兼容性测试:
e.className 能在IE、Mozilla(Firefox)、Opera和Safari正确运行
e.getAttribute('class')和e.setAttribute('class', 'value') 能在Mozilla(Firefox)和Opera中正确运行,在IE和Safari中则不能使用。
e.getAttribute('className') 在IE和Opera中正确运行,在Mozilla(Firefox)和Safari中则不能使用。
由于对JS不熟悉,调试了N久:
document.getElementById("td").class = "css_sty";
document.getElementById("td").setAttribute("calss","css_sty");
试了以上两种方法都不行.
于是在网上拼命搜索,终于找到问题所在:
由于class属于JavaScript保留值,因此当我们要操作元素的class属性值时,直接使用obj.getAttribute('class')和obj.setAttribute('class', 'value')可能会遭遇浏览器兼容性问题。
W3C DOM标准为每个节点提供了一个可读写的className属性,作为节点class属性的映射,标准浏览器的都提供了这一属性的支持,因此,可以使用e.className访问元素的class属性值,也可对该属性进行重新斌值。而IE和Opera中也可使用e.getAttribute('className')和e.setAttribute('className', 'value')访问及修改class属性值。相比之下,e.className是W3C DOM标准,仍然是兼容性最强的解决办法。
以下列表说明了上文提及的三种做法的浏览器兼容性测试:
e.className 能在IE、Mozilla(Firefox)、Opera和Safari正确运行
e.getAttribute('class')和e.setAttribute('class', 'value') 能在Mozilla(Firefox)和Opera中正确运行,在IE和Safari中则不能使用。
e.getAttribute('className') 在IE和Opera中正确运行,在Mozilla(Firefox)和Safari中则不能使用。
相关文章推荐
- JS直接修改CSS属性/id属性/class属性
- 关于js修改css属性的一个小问题
- js中用setAttribute为标签设置class属性
- JS实现动态监听select标签,并修改属性
- js实现的修改div里img标签的src属性
- 关于JS读取DOM对象(标签)的自定义属性
- 一个关于Struts2标签中cssClass属性的问题
- js控制某个div层中a标签的class属性,点击实现添加class属性,并且删除其他同级的class属性
- js修改HTML标签的属性
- js获取多个标签元素的内容,并根据元素的内容修改标签的属性
- 关于JS 修改元素 display 属性问题
- 关于超链接标签 a 里的属性调用js的问题 以及yii button里面调用cgridview 某一行数据
- 关于JS动态修改CSS样式问题(class和style)
- jQuery和js一些标签属性的获取和修改方法以及区别
- js修改html中class属性
- 通过js修改html的标签属性
- js中给多个class属性的标签赋值
- js根据class属性获取所有标签
- js实现的修改div里img标签的src属性
- 关于修改image属性后图片不刷新问题