兼容浏览器的获取指定元素(elem)的样式属性(name)的方法

//兼容浏览器的获取指定元素(elem)的样式属性(name)的方法

function getStyle(elem, name){
  //如果属性存在于style[]中,直接取
  if(elem.style[name]){
    return elem.style[name];
  } 
  //否则 尝试IE的方法
  else if(elem.currentStyle){
    return elem.currentStyle[name];
  }
  //尝试W3C的方式
  else if(document.defaultView && document.defaultView.getComputedStyle){
    //W3C中为textAlign样式,转为text-align
    name = name.replace(/([A-Z])/g, "-$1");
    name = name.toLowerCase();
    
    var s = document.defaultView.getComputedStyle(elem, "");
    return s && s.getPropertyValue(name);
  } else {
    return null;
  }
  
}
  代码来自《精通Javascript》 by John Resig。

测试代码:http://jsbin.com/osawez/1/ (注意:console.log(ele.style.height)值为null)

 

posted @ 2013-04-09 15:01  令狐葱★  阅读(337)  评论(0编辑  收藏  举报