咱们常常须要在JavaScript中给Element动态添加各类属性,能够使用setAttribute()来实现,但涉及到了浏览器的兼容性问题。
setAttribute(string name,string value):增长一个指定名称和值的新属性,或者把一个现有的属性设定为指定的值。
一、关于class和className
class属性在W3C DOM中扮演着很重要的角色,但因为浏览器差别性仍然存在。使用setAttribute("class", vName)语句动态设置Element的class属性在firefox中是行的通的,在IE中却不行。由于使用IE内核的浏览器不认识"class",要改用"className";
一样,firefox 也不认识"className"。因此经常使用的方法是两者兼备:css
element.setAttribute("class", vName); element.setAttribute("className", vName); //for IE
二、onclick
bar.setAttribute("onclick", "");这里利用setAttribute指定onclick属性,简单很好理解。可是IE不支持。
为达到兼容各类浏览器的效果,能够用点符号来设置Element的对象属性、集合属性和事件属性。浏览器
document.getElementById("foo").className = "fruit"; document.getElementById("foo").style.cssText = "color: #00f;"; document.getElementById("foo").style.color = "#00f"; document.getElementById("foo").onclick= function () { alert("This is a test!"); }