javascript - 如何使用 css 为具有 JS 生成的类名的元素设置样式?

标签 javascript html css

我目前正在尝试使用 HTML/CSS/JS 将我的一个长期运行的宠物元素(一个 Java 国际象棋应用程序)移植到网络上,但我在网络开发方面不是很有经验。 我想要做的是使用我的棋盘方 block (元素)的类名来表示它们应该由 css 设置的颜色。 如我的代码片段所示,这些元素都是 JS 生成的,并且我已验证每个方 block 的类名都已正确设置。然而,CSS 似乎并没有正确地改变背景颜色。

感谢任何提示/指针:)

function generateBoardHTML() {
    var chessBoard = document.getElementById('chessBoard');

    for (var row = 0; row < 8; row++) {
        var boardRow = chessBoard.insertRow(row);

        for (var col = 0; col < 8; col++) {
            var boardSquare = boardRow.insertCell(col);

            boardSquare.id = '(' + row + ',' + col + ')';
            boardSquare.class = (row + col) % 2 == 0 ? 'whiteSquare' : 'blackSquare';
            //boardSquare.innerHTML = boardSquare.class;
        }
    }
}

generateBoardHTML();
td {
    border: 1px solid black;
    width: 80px;
    height: 80px;
}

.whiteSquare {
    background-color: white;
}

.blackSquare {
    background-color: black;
}
<table id='chessBoard'>
    <tbody></tbody>
</table>

最佳答案

当您在 JavaScript 中引用 then 时,有几个 CSS 属性的名称很奇怪。 class 就是其中之一。 (for 是另一个,它变成了 labelFor。)

boardSquare.className = (row + col) % 2 == 0 ? 'whiteSquare' : 'blackSquare';

历史记录:在 ES3 下,您不能使用保留字作为属性名称,class 是保留字。虽然这在 ES5 中无关紧要,但该约定已经基本确定。

引用:https://developer.mozilla.org/en-US/docs/Web/API/Element/className

关于javascript - 如何使用 css 为具有 JS 生成的类名的元素设置样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37371094/

相关文章:

javascript - 在 Dynamic Globe Rotation 中有太多垂直和水平线我不想要太多线

html - Div 没有在另一个 div 内居中对齐

css - 如果浏览器支持 CSS3 媒体查询和 CSS3 渐变,我如何通过 JavaScript 检测?

javascript - 带数组的 JSON

javascript - 回发问题上的html编码

html - 如何使用CSS检测具有2列行的单元格的高度

javascript - 如何使用 Javascript 检索 <video> 元素的长度(以秒为单位)?

javascript - 处理 jquery-localize 中的默认语言

JavaScript 压缩/解压缩。如何使用数组减少

css - 水平卷轴充满DIV? (自动宽度)