核心思想是用getComputedStyle获取样式,如果没有获取到就判断是不是动态创建的元素,如果是则用style获取行内样式。
看重点(注释部分)代码吧!
curCSS = function( elem, name ) { var ret, computed = window.getComputedStyle( elem, null ), style = elem.style; if ( computed ) { //getPropertyValue兼容ie9获取filter:Alpha(opacity=50) ret = computed.getPropertyValue( name ) || computed[ name ]; //如果是动态创建的元素,则使用style方法获取样式 if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { ret = jQuery.style( elem, name ); } ................. } return ret; };