Javascript Js雷区
我正在尝试用javascript创建一个雷区游戏 当我点击清除ro**w时,它会给出“通过”,但有时也会给出“死亡”,或者点击**挖掘行有时给出“通过”。它应该只给出“通过”和“死亡”的明确和雷区行 我想不出原因 你能看到吗 以下是我目前的代码:Javascript Js雷区,javascript,Javascript,我正在尝试用javascript创建一个雷区游戏 当我点击清除ro**w时,它会给出“通过”,但有时也会给出“死亡”,或者点击**挖掘行有时给出“通过”。它应该只给出“通过”和“死亡”的明确和雷区行 我想不出原因 你能看到吗 以下是我目前的代码: var level = 9; // create the table var body = document.getElementsByTagName("body")[0]; var tbl = document.createEle
var level = 9;
// create the table
var body = document.getElementsByTagName("body")[0];
var tbl = document.createElement("table");
tbl.setAttribute('id', 'myTable');
var tblBody = document.createElement("tbody");
//Create 2d table with mined/clear
for (var i = 1; i <= 10; i++) {
var row = document.createElement("tr");
document.write("<br/>");
for (var x = 1; x <= 10; x++) {
var j = Math.floor(Math.random() * 50);
if (j <= 15) {
j = "mined";
} else {
j = "clear";
}
var cell = document.createElement("td");
var cellText = document.createTextNode(j + "");
cell.appendChild(cellText);
row.appendChild(cell);
}
tblBody.appendChild(row);
}
tbl.appendChild(tblBody);
body.appendChild(tbl);
tbl.setAttribute("border", "1");
//Check which row is clicked
window.onload = addRowHandlers;
function addRowHandlers() {
var table = document.getElementById("myTable");
var rows = table.getElementsByTagName("td");
for (p = 0; p < rows.length; p++) {
var currentRow = table.rows[p];
var createClickHandler = function (row) {
return function () {
var cell = row.getElementsByTagName("td")[1];
var id = cell.innerHTML;
if (id == "mined") {
alert("Died");
} else {
alert("Passed!");
}
};
}
currentRow.onclick = createClickHandler(currentRow);
}
}
var级别=9;
//创建表
var body=document.getElementsByTagName(“body”)[0];
var tbl=document.createElement(“表”);
tbl.setAttribute('id','myTable');
var tblBody=document.createElement(“tbody”);
//使用挖掘/清除创建二维表格
对于(var i=1;iIts'这一行,它会导致错误行为:var cell=row.getElementsByTagName(“td”)[1];
每次单击时,[1]
都会选择列的第二个单元格,无论实际单击的是哪个单元格
我修改了你的小提琴:
在创建表时,onclick处理程序现在直接应用于单个单元格
cell.onclick = function() {
if (this.innerHTML == "mined") {
alert("Died");
} else {
alert("Passed!");
}
}
我遗漏了什么吗?我将你的代码粘贴到JSFIDLE中,但没有任何效果?同时命名一个text/html值id
是一个非常糟糕的主意,而且非常令人困惑。如果你想仔细看一下,这里有一个仅JS版本的扫雷者:Blowsie Thnx的注释,但是你能告诉我如何更好地使用JS创建一个id吗一张桌子?VedranŠego Thnx作为来源!我会在这里得到一些提示..vsego.org/minesweeper对我来说似乎有点压倒性..我认为这个项目对新的初学者来说是好的。但是看起来它比我想象的要复杂一点。是的!非常感谢你的时间!我明白了!