編輯:我已經修改了代碼婁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