gpt4 book ai didi

javascript - 无法理解为什么这个 javascript 不起作用

转载 作者:行者123 更新时间:2023-11-28 13:43:10 25 4
gpt4 key购买 nike

<!DOCTYPE html>
<html>
<head>
<title>Anti Chess</title>
</head>
<body>
<h1 id="game_title">Anti Chess by theManikJindal</h1>
<br />
<br />

<table id="game"></table>
<script>
var white = 1;
var ta = document.getElementById("game");
if(white == 1)
{
for(var i=0;i<8;i++)
{
var x = document.createElement('tr');
ta.appendChild(x);
for(var j=0;j<8;j++)
{
var y = document.createElement('td');
ta.childNodes[i].appendChild(y);
ta.childNodes[i].childNodes[j].setAttribute("id",String.fromCharCode(j+97)+(8-i).toString());
}

}

}
else
{
for(var i=0;i<8;i++)
{
var x = document.createElement('tr');
ta.appendChild(x);
for(var j=0;j<8;j++)
{
var y = document.createElement('td');
ta.childNodes[i].appendChild(y);
ta.childNodes[i].childNodes[j].setAttribute("id",String.fromCharCode(104-j)+(i+1).toString());
}

}

}
</script>
</body>
</html>

我不明白为什么这个脚本不起作用。是否有任何好的 Javascript 调试器,还是必须不断地用头撞墙才能理解一些东西。

请帮忙

该脚本应该创建一个带有 8x8 框的表格,并且属性 id 应从“a8”、“b8”、“c8”...“h8”设置为“a1”、“b1”、“c1” “...”h1“。对于a,当白色的值为1时。并且从“h”,“g1”,“f1”...“a1”到“h8”,“g8”,...“a8”对于白色不等于1 .目前默认为白色=1。

最佳答案

表必须始终至少有一个 <tbody>元素。如果没有,浏览器将创建一个。

这意味着您的整个childNodes访问错误。

我建议使用这个 HTML:

<table><tbody id="game"></tbody></table>

这应该能让你的代码正常工作,但你可以进一步简化它:

var white = 1, a = "a".charCodeAt(0), i, j, x, ta = document.getElementById("game");
for(i=0;i<8;i++) {
x = document.createElement('tr');
for(j=0;j<8;j++)
x.appendChild(document.createElement('td')).id =
String.fromCharCode((white == 1 ? j : 8-j)+a)+(white == 1 ? 8-i : i+1);
ta.appendChild(x);
}

如您所见,我通过移动 white == 1 消除了重复整个代码块的需要。检查到最相关的地方。我还更多地使用了x引用,我已将“神奇”值替换为稍后返回时更容易理解的值(a 变量)。

希望这有帮助!

编辑:另外,我刚刚注意到该表没有内容 - 这就是您所说的没有显示的意思吗?确保您有合适的 CSS 使表格单元格可见。

关于javascript - 无法理解为什么这个 javascript 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16388264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com