首页 新闻 会员 周边 捐助

为什么我在通过getComputedStyle会报错

0
悬赏园豆:10 [已解决问题] 解决于 2019-01-07 11:55

为什么我想要通过getComputedStyle获取css里面高度的时候,会说不是element类型,这是什么意思呀



nbl2012的主页 nbl2012 | 初学一级 | 园豆:66
提问于:2018-12-26 10:25
< >
分享
最佳答案
0

ie9以下 不支持window.getComputedStyle() 但是可以用element.currentStyle
function getStyle(element, att){
    if(window.getComputedStyle){
        return window.getComputedStyle(element)[att];
    }else{
        //针对IE9以下兼容
        return element.currentStyle[att];
    }
}
var dom = document.getElementsByClassName("sports_menu");
console.log(getStyle(dom),'height'));

收获园豆:10
青青子衿619 | 菜鸟二级 |园豆:300 | 2018-12-26 15:52

我通过您的这段代码,边敲边想,做了一遍之后,发现已经不报错了,但是高度还是没有显示出来,这个是什么原因呀,会不会和getComputedStyle第二个属性有关系呀

nbl2012 | 园豆:66 (初学一级) | 2018-12-26 20:23

@nbl2012:
getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值。返回的是一个CSS样式声明对象([object CSSStyleDeclaration]),是只读的。如果你想获取到'sports_menu'的高度有更简单的方法

要是使用jquery就27行的height()方法,要是使用js就28行的offsetHeight

青青子衿619 | 园豆:300 (菜鸟二级) | 2018-12-28 16:35

@nbl2012: console.log(getStyle(dom),'height'));第一次答题输出的地方dom后多了个')'😄

青青子衿619 | 园豆:300 (菜鸟二级) | 2018-12-28 16:44
其他回答(1)
0

getComputedStyle() 的第一个参数应该是某个元素,而你传入的 dom 是个元素集合。

zanetti | 园豆:128 (初学一级) | 2019-02-08 22:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册