獲取物件樣式屬性函式getStyle()
阿新 • • 發佈:2019-02-01
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); }
不作多餘程式碼解釋了,網上搜下一大堆。