原生javascript获取元素样式属性值的方法


Posted in Javascript onDecember 25, 2010

所以, 我们得利用IE的currentStyle和W3C的getPropertyValue获取.
elem.style.attr获取样式的方法就不说了. 先来看currentStyle方法, 此对象ie专属, 代表了在全局样式表、内嵌样式和 HTML 标签属性中指定的对象格式和样式. IE下通过它, 就可以获取元素的Css属性值.
而针对其他标准浏览器, W3C也提供了一个方法getPropertyValue, 此方法, 稍有点复杂, 首先要通过document.defaultView.getComputedStyle获得Css的样式对象, 然后通过该对象的getPropertyValue获取属性值.
上述两种方法, 无论IE还是W3C的, 有一点是相同的, 它们所获取的是元素Css属性最终值. 这一点与Css的优先级是相同的.
有一点不同的是, IE的方法是通过Css属性的驼峰式名(如textAlign)获取, 而W3C的方法是通过元素Css原来的属性名(如text-align)获取的, 所以, 在使用W3C方法时, 需要对Css属性名做个简单的处理.
基于此, 我们可以封装一个获取元素属性值的方法, 如下:

function attrStyle(elem,attr){ 
if(elem.attr){ 
//若样式存在于html中,优先获取 
return elem.style[attr]; 
}else if(elem.currentStyle){ 
//IE下获取CSS属性最终样式(同于CSS优先级) 
return elem.currentStyle[attr]; 
}else if(document.defaultView && document.defaultView.getComputedStyle){ 
//W3C标准方法获取CSS属性最终样式(同于CSS优先级) 
//注意,此法属性原格式(text-align)获取的,故要转换一下 
attr=attr.replace(/([A-Z])/g,'-$1').toLowerCase(); 
//获取样式对象并获取属性值 
return document.defaultView.getComputedStyle(elem,null).getPropertyValue(attr); 
}else{ 
return null; 
} 
}

记得精通JavaScript一书中获取元素位置那一节(忘了是第6还是第7章), 有获取元素样式属性值更详细的解释. 第一次知道document.defaultVies.getComputedStyle就是从这本书来的. 很棒的一本书, 有兴趣的朋友话一定要看看.
原方发布于Mr.Think的博客: http://mrthink.net/js-get-cssproperty/
Javascript 相关文章推荐
javaScript 数值型和字符串型之间的转换
Jul 25 Javascript
jQuery点缩略图弹出层显示大图片
Feb 13 Javascript
jquery购物车结算功能实现方法
Oct 29 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 Javascript
JavaScript+Html5实现按钮复制文字到剪切板功能(手机网页兼容)
Mar 30 Javascript
jquery版轮播图效果和extend扩展
Jul 18 jQuery
node.js基于express使用websocket的方法
Nov 09 Javascript
js生成word中图片处理方法
Jan 06 Javascript
ng-alain表单使用方式详解
Jul 10 Javascript
JS实现倒计时图文效果
Nov 17 Javascript
深入理解Vue keep-alive及实践总结
Aug 21 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
Jan 05 Vue.js
javascript中使用replaceAll()函数实现字符替换的方法
Dec 25 #Javascript
Javascript动态绑定事件的简单实现代码
Dec 25 #Javascript
浅析javascript闭包 实例分析
Dec 25 #Javascript
父子窗体间传递JSON格式的数据的代码
Dec 25 #Javascript
javascript自执行函数之伪命名空间封装法
Dec 25 #Javascript
Ext对基本类型的扩展 ext,extjs,format
Dec 25 #Javascript
JQuery live函数
Dec 24 #Javascript
You might like
php冒泡排序与快速排序实例详解
2015/12/07 PHP
php实时倒计时功能实现方法详解
2017/02/27 PHP
WordPress伪静态规则设置代码实例
2020/12/10 PHP
AeroWindow 基于JQuery的弹出窗口插件
2011/06/27 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
基于jQuery实现美观且实用的倒计时实例代码
2015/12/30 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
vue路由守卫及路由守卫无限循环问题详析
2019/09/05 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
python3库numpy数组属性的查看方法
2018/04/17 Python
用Python3创建httpServer的简单方法
2018/06/04 Python
django实现用户注册实例讲解
2019/10/30 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
Python实现UDP程序通信过程图解
2020/05/15 Python
Python验证码截取识别代码实例
2020/05/16 Python
碧欧泉法国官网:Biotherm法国
2019/10/23 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
P/Invoke是什么
2015/07/31 面试题
公司员工的自我评价范例
2013/11/01 职场文书
经典大学生求职信范文
2014/01/06 职场文书
给交警的表扬信
2014/01/12 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
《会走路的树》教后反思
2014/04/19 职场文书
毕业论文答辩演讲稿
2015/06/23 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android