javascript - 为什么我的更改按钮不起作用?

标签 javascript html css

我是 javascript 的新手,我正在学习更多关于 HTML5、Javascript 和 CCS3 的知识。

我被赋予的任务:

创建一个棋盘,使用 JavaScript 编写单元格 (8x8),然后使用 nth-child 更改 CSS 中的背景颜色。

如你所见,我已经做到了,我不知道我是否做得很好,但我现在要添加一个改变边(黑色和白色边)的按钮。我试图通过创建具有 bool 值的 var 来解决它,如果它是 true 它将加载一个函数,如果它是 false 另一个。它在加载页面时有效,但更改按钮不起作用。我做错了什么?

enter image description here

HTML 和 JavaScript:

<!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="ccsO2.css">



    </head>
<body>

<h1>Sjakkbrett</h1>

<script>

    var truefalse = true;

    function changer(){
        if(truefalse === true){
            truefalse = false;
        } else{
        truefalse = true;
    }
    }

    var svartbrikke = new Array();
    svartbrikke [0] = "&#9820";
    svartbrikke [1] = "&#9822";
    svartbrikke [2] = "&#9821";
    svartbrikke [3] = "&#9819";
    svartbrikke [4] = "&#9818";
    svartbrikke [5] = "&#9821";
    svartbrikke [6] = "&#9822";
    svartbrikke [7] = "&#9820";
    svartbrikke [8] = "&#9823";

    var hvitbrikke = new Array();
    hvitbrikke [0] = "&#9814";
    hvitbrikke [1] = "&#9816";
    hvitbrikke [2] = "&#9815";
    hvitbrikke [3] = "&#9813";
    hvitbrikke [4] = "&#9812";
    hvitbrikke [5] = "&#9815";
    hvitbrikke [6] = "&#9816";
    hvitbrikke [7] = "&#9814";
    hvitbrikke [8] = "&#9817";

    if(truefalse === true){

    document.write('<table>');
    for(var i = 0; i < 8; i++){

            document.write('<tr align="center">');
        for(var j = 0; j < 8; j++){

            if(i === 0){
                document.write('<td>' + svartbrikke[j] + '</td>');
            }
            if(i === 1){
                document.write('<td>' + svartbrikke[8] + '</td>');
            }
            if(i === 6){
                document.write('<td>' + hvitbrikke[8] + '</td>');
            }
            if(i === 7){
                document.write('<td>' + hvitbrikke[7 - j] + '</td>');
            } 
            else if(i >= 2 && i <= 5) {
            document.write('<td> </td>');
            }
        }
        document.write('</tr>');
    }
    document.write('</table>');
    } else {

    document.write('<table>');
    for(var i = 0; i < 8; i++){

            document.write('<tr align="center">');
        for(var j = 0; j < 8; j++){

            if(i === 0){
                document.write('<td>' + hvitbrikke[j] + '</td>');
            }
            if(i === 1){
                document.write('<td>' + hvitbrikke[8] + '</td>');
            }
            if(i === 6){
                document.write('<td>' + svartbrikke[8] + '</td>');
            }
            if(i === 7){
                document.write('<td>' + svartbrikke[7 - j] + '</td>');
            } 
            else if(i >= 2 && i <= 5) {
            document.write('<td> </td>');
            }
        }
        document.write('</tr>');
    }
    document.write('</table>');
    }


</script>
<button onclick="changer();"> Bytt side</button>
</body>
</html>

CSS:

root { 
    display: block;
}

table{
    background-color: lightgray;


}



tr:nth-child(2n+1) > td:nth-child(2n){
    content: center;
    background-color: white;
    box-sizing: border-box; 
    width: 40px;
    height: 40px;



}

tr:nth-child(2n) > td:nth-child(2n+1){
    content: center;
    background-color: white;
    box-sizing: border-box; 
    width: 40px;
    height: 40px;


}

最佳答案

您不能使用 document.write()页面呈现后。

使用:

在页面呈现后更改/添加/删除页面元素。

关于javascript - 为什么我的更改按钮不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21599691/

相关文章:

javascript - 找出 Chrome 中 HTML 内容滚动的罪魁祸首

php - CSS/JS 将 <td> 着色为条形图?

CSS 下拉菜单不会与父菜单对齐

色带末端的 CSS

javascript - 如何在模板中引用以编程方式生成的 $scope 变量?

javascript - 切换节点 - javascript

html - 如何将输入与多行文本的顶部对齐?

java - 如何在 Java 中对字符串进行 HTML 化

php - 这是以类方式或 OOP 访问 mysql 的正确方法吗?

javascript - 在 Mozilla firefox 中不起作用,在 chrome 中工作正常 $ ('input[data-type="choise"]').change(function()