设置或获取样式兼容函数
function css(obj, attr, val){
// 判断是设置样式还是获取样式
if(!val){ //获取样式
if(window.getComputedStyle){ //判断浏览器是否支持getComputedStyle
return getComputedStyle(obj)[attr];
}else{
return obj.currentStyle[attr];
}
}else{ //设置样式
return obj.style[attr] = val;
}
}
浅谈style.,currentStyle,getComputedStyle,getAttribute
currentStyle是针对ie的,所以上面封装好的,直接用
xxx为属性.
ele为元素.
1.style.是针对于样式
在前面的一篇博客中我也有说到,ele.style.xxx; 通常用于赋值,赋值也是针对于行内样式,用它来取值的话,它只能取到内联样式.
今天有另外发现,ele.style.display可以被获取到!–2016.11.10
2.currentStyle是针对于样式
这是ie用来获取样式的方法,通常这样使用:ele.currentStyle.xxx;可以获取内联和外联样式
3.getComputedStyle是针对于样式
除了ie貌似都支持,使用方法:getComputedStyle(ele,false)[xxx];这里出现false的原因是getComputedStyle可以获取伪元素,如果想获取伪元素的 话,将false替换掉即可以获取内联和外联样式
4.getAttribute 针对于属性
ele.getAttribute() 只能获取元素中的内联属性,并且可以获得自定义的属性.
用JS获取Html标签属性有两种方法:
JS代码:
var ka=document.getElementByI d(“link”);
alert(ka.getAttribute(“id”));
alert(ka.id);
两种方法都能弹出a标签的ID属性,但从各浏览器兼容上来说用ka.id的方式更好,但对于自定义属性blogname,则就要用getAttribute()来实现了,如:
alert(ka.getAttribute(“blogname”)); //前端开发
5.setAttribue针对于属性
赋值也是针对于行内属性,