javascript - 通过className设置的背景色为什么不能用xxx.style.backgroundColor来输出?
漂亮男人
漂亮男人 2017-05-19 10:39:21
[JavaScript讨论组]
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        #a{
            width: 100px;
            height: 100px;
            border:1px solid;
        }
        .color{
            background: red;
        }
    </style>
</head>
<body>
    <p id="a">

    </p>
</body>
<script type="text/javascript">
    var p = document.getElementById('a');
    p.className = 'color';
    document.write(p.style.backgroundColor);
</script>

输出为空

漂亮男人
漂亮男人

全部回复(5)
怪我咯

style.backgroundColor得到是属于这个Element本身的样式,不包括因匹配class而获得的样式。你想要的那个可以用getComputedStyle

世界只因有你

通过element.style输出的样式是指输出元素的行内样式。而通过修改className来改变样式这一操作并没有影响到元素的行内样式。楼主需要区分行内样式,内联样式等。

滿天的星座

也可以这样理解,当前p元素没有设置style属性。

迷茫

xxx.style.zzz 相当于 xxx.getAttribute('style', 'zzz');
这样你是不是能理解得更好一些?
getComputedStyle 关键在于 computed, 而不是shown

怪我咯

一楼的是正解决 style.backgroundColor得到的是这个标签本身的样式 不含包含css作用以后附加给这个标签的样式 所以用getComputedStyle获取。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号