javascript - 求大神帮忙看一下,JS创建一个元素,然后获取这个元素的样式问题。。
迷茫
迷茫 2017-04-11 11:04:36
[JavaScript讨论组]

我想要的效果是,创建一个元素LI,然后获取刚刚阶建这个元素样式表中的width ,我现在弄出来老是有错,但我又不知道为什么,求大神帮看看我到底哪里写错了,应该怎么改,谢谢哈。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <style>
            li{
                width: 300px;
                height: 20px;
                background: #002299;
                position: absolute;
                left: 0px;
            }
            p{
                width: 30px;
            }
        </style>
        <title></title>
        <script>
        
        function clsp(xd,classx){
                var xDi = document.createElement("li");
                xDi.className =" ";
                if(xd){
                    xDi.style.width =xd;
                    if(xDi.className == ""){
                        xDi.className = classx;
                    }
                    else{
                        xDi.className = classx + "sd";
                    }
                }
                return xDi;
            };
        
            function classNamex(ps,cel){
                if(window.getComputedStyle){
                    return parseFloat(ps.getComputedStyle(ps,null)[cel]);
                }
                else{
                    return parseFloat(ps.currentStyle[cel]);
                }
            };
            //
            
            //
            window.onload = function(){
                var  sdd = clsp("30px","sidw");
                console.log(sdd);
                console.log(sdd.style.width = classNamex(sdd,"width"));
                
            };
            
            
        </script>
    </head>
    <body>
    </body>
</html>
迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
ringa_lee
ps.getComputedStyle(ps,null)[cel]//这里错了吧
window.getComputedStyle(ps,null)[cel]//这样才对
//另外你新建的元素是没有渲染的,应该是取不到值得,在这之前appendChild到body上应该就可以了
PHPz

style方法是获取不到外部声明的样式的。只能获取到行内声明的样式。

例如 <li style="width:200px"></li>这种。

所以获取样式的话需要用getComputedStyle方法。

语法如下:

var style = window.getComputedStyle("元素", "伪类");

一般没有伪类的话,就直接window.getComputedStyle("元素",null)。

你用法写错了

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

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