为什么javascript获取不到写在css里面的属性?

比如有个<a>元素
他的<style type="text/css">里面定义了margin-top:10px;
但我javascript就获取不到
一定要在<a>后面写style="margin-top:10px"这样才行
这是为什么?
最新回答
像风一样

2024-09-27 05:27:03

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

总之是可以做到的,只要使用正确的方法。
纯洁的小黄瓜

2024-09-27 05:05:22

<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>
害怕失恋所以单身

2024-09-27 01:35:45

估计是你不只有一个<a>标记吧。要么加一个class或者id在你需要的a中。或者从多个a标记的数组中获得你要的a标记