您的位置:首页 > Web前端 > CSS

获取对象样式属性函数getStyle()

2012-11-16 22:57 281 查看
function getStyle(elem, styleName){
if(elem.style[styleName]){ //获取内联样式
return elem.style[styleName];
}
else if(elem.currentStyle){ //IE特有的属性
return elem.currentStyle[styleName];
}
else if(window.getComputedStyle){ //DOM标准属性
return window.getComputedStyle(elem, null)[styleName];
}
else{
return null;
}
}


  

考虑到函数中有重复工作的部分,优化一下:

function getStyle(elem, styleName){
if(elem.currentStyle) {
getStyle = function(elem, styleName) {
if(elem.style[styleName]){
return elem.style[styleName];
} else {
return elem.currentStyle[styleName];
}
}
} else if(window.getComputedStyle) {
getStyle = function(elem, styleName) {
if(elem.style[styleName]){
return elem.style[styleName];
} else {
return window.getComputedStyle(elem, null)[styleName];
}
}
} else {
getStyle = function(elem, styleName) {
return elem.style[styleName];
}
}
return getStyle(elem, styleName);
}


  

代码貌似有点长了,再优化一下:

function getStyle(elem, styleName){
if(elem.currentStyle) {
getStyle = function(elem, styleName) {
return elem.style[styleName] ? elem.style[styleName] : elem.currentStyle[styleName];
}
} else if(window.getComputedStyle) {
getStyle = function(elem, styleName) {
return elem.style[styleName] ? elem.style[styleName] : window.getComputedStyle(elem, null)[styleName];
}
} else {
getStyle = function(elem, styleName) {
return elem.style[styleName];
}
}
return getStyle(elem, styleName);
}


不作多余代码解释了,网上搜下一大堆。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: