js 获取非行间样式

1、getComputedStyle(nodeObj,false);该方法是BOM对象,第一个是要获取样式的节点对象;第二个可以写成任何的字符一般写成false或者null,这里最好是用false因为用null IE9+会有问题;后面直接跟要获取的样式(写在方括号中)即可

var style=getComputedStyle(div,false)['width']; 

但是该方法具有兼容性,IE8以下不支持该方法

2、currentStyle['attr'];

该属性返回的也是是一个对象,也是计算后的样式的属性值对的集合。比如要获取某个div宽度。那么可以直接写成 

var style=div.currentStyle['width'];

 

最终可以封装为一个方法:

<script type="text/javascript">function getAttr(obj,attr){
  var style;
     if(obj.currentStyle){   //当有这个属性的时候currentStyle
    style=obj.currentStyle[attr]; //兼容IE
     }
     else{
    style=getComputedStyle(obj,false)[attr]; //主流浏览器
     }
     return style;
}

</script>

 

posted @ 2018-07-04 16:58  雨筠  阅读(162)  评论(0编辑  收藏  举报