编辑:我已经修改了代码娄dinamically产生的网格。
注意:请注意,这个答案用了jQuery。
首先,您可以创建一个函数来生成网格。它会循环行和列,正如你试图做的那样,但它会返回一个正确的HTML代码的字符串。您将使用jQuery将该HTML字符串作为HTML元素追加到文档中。
顺便说一句,你不应该尝试设置JavaScript的单元格的大小,因为你有CSS。
当用户点击单元格时,可以使用jQuery .index()
来检索单元格的索引,并从中检索它所属的行和列。
最后,要更改单元格的颜色,您只需编辑它的background-color
属性。
像这样的东西可以帮助你开始:
function generateGrid(rows, cols) {
var grid = "<table>";
for (row = 1; row <= rows; row++) {
grid += "<tr>";
for (col = 1; col <= cols; col++) {
grid += "<td></td>";
}
grid += "</tr>";
}
return grid;
}
$("#tableContainer").append(generateGrid(5, 5));
$("td").click(function() {
var index = $("td").index(this);
var row = Math.floor((index)/5) + 1;
var col = (index % 5) + 1;
$("span").text("That was row " + row + " and col " + col);
$(this).css('background-color', 'red');
});
td {
border: 1px solid;
width: 50px;
height: 50px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>Select a cell!</span>
<div id="tableContainer"></div>
我们将需要比这多得多代码,以帮助。你所有的东西都是循环遍历每个单元格并返回一些东西,但是因为它返回,它实际上只是第一个单元格。如果您可以设置一个适用于JSFiddle或Codepen中的内容的演示程序,这将会很有帮助。 – samanime