比如有个<a>元素他的<style type="text/css">里面定义了margin-top:10px;但我javascript就获取不到一定要在<a>后面写style="margin-top:10px"这样才行这是为什么?
getStyle: function(element, style) { element = $(element); style = style == 'float' ? 'cssFloat' : style.camelize(); var value = element.style[style]; if (!value || value == 'auto') { var css = document.defaultView.getComputedStyle(element, null); value = css ? css[style] : null; } if (style == 'opacity') return value ? parseFloat(value) : 1.0; return value == 'auto' ? null : value; }上面是prototype.js获得style的函数方法,你可以看到,它使用了document.defaultView.getComputedStyle(element, null)来获得css,而不仅仅是element.style总之是可以做到的,只要使用正确的方法。
<html><head><style type="text/css">.a_style{margin-top:10px;}</style></head><body><a href='' class='a_style' id='link1'>bbbb</a><script>var lk = document.getElementById('link1');var newValue = lk.style.margin-top;alert(newValue);lk.style.margin-top = '100px';</script></body></html>