0

为这个看似多余的问题道歉,但其他人似乎都在询问不同的情况,例如使用 JQuery。我正在尝试动态创建一个 div 并对其应用现有的 CSS 样式,但 div 没有采用该样式。非常感谢任何提示:

    <style>
        div.tile {
            position: absolute;
            overflow: hidden;
            background:  rgba(1,1,0,1);
            width: 400px;
            height: 400px;
        }
        .a { left: 2cm; top: 2cm; z-index: 1; }
        .b { left: 4cm; top: 4cm; z-index: 2; }
    </style>
</head>
<body>
    <script type="text/javascript">

        createLayer(1);

        function createLayer(layerIndex){
            var div = document.createElement('div');
            div.id = "div"+layerIndex;
            div.class = "tile a";
            document.body.appendChild(div);
            var canvas = document.createElement('canvas');
            canvas.id     = "layer" + layerIndex;
            div.appendChild(canvas);
        }
4

2 回答 2

5

在 vanilla JS 中,向元素添加类的属性className不是class.

试试这个:

div.className = "tile a";

于 2012-09-20T19:24:13.460 回答
0

您应该做的是在您的函数运行后检查 HTML,以确保该类被正确应用。CSS 将应用于匹配的元素,即使它是动态创建的 - 除非该元素没有被正确标记。我建议在 Firefox 中使用 Firebug 来确保您的 div 是正确的。

于 2012-09-20T19:25:25.020 回答