這裏是一個工作版本:
<style>
.row { width: 100%; clear: both; text-align: center; }
.col { display: inline-block; min-height: 20px; min-width: 20px; padding: 8px 10px; background-color: #ededed; margin: 1px; }
.col:hover { background-color: #333333; color: #ffffff; }
</style>
<input type="button" onClick="genDivs(6);" value="click me" />
<div id="target"></div>
<script language="javascript">
function genDivs(rows,cols){
var e = document.getElementById("target");
cols = cols || rows;
for(var r = 0; r < rows; r++) {
var row = document.createElement("div");
row.className = "row";
for(var c = 0; c < cols; c++) {
var col = document.createElement("div");
col.className = "col";
col.innerHTML = (r * rows) + c;
col.innerHTML = getElement();
row.appendChild(col);
}
e.appendChild(row);
}
}
function getElement(){
var elements = [
"A",
"B",
"C"
]
return elements[Math.floor(Math.random() * (elements.length))];
}
</script>
這是與jQuery容易。我使用了vanilla Javacript。我通常會將onclick放在javascript中,但我仍然保留原樣。
這裏有一個的jsfiddle: https://jsfiddle.net/mckinleymedia/chLLg4rr/
希望這有助於。
根據要求,我做了一個jQuery版本。我也使用lodash來提高效率(lodash非常方便)。而且我更正確地分離了腳本,html和樣式 - 這些應該分別放在不同的文件中。這裏有一個的jsfiddle: https://jsfiddle.net/mckinleymedia/btb9vp26/
腳本:
function grid(rows,cols,target){
cols = cols || rows;
target = target || "grid";
var gridDiv = $("." + target);
gridDiv.html(''); // clear grid to reload
_.times(rows, function() {
gridDiv
.each(function(){ // allows multiple grids
$(this).append(addRows(rows,cols));
});
});
};
function addRows(rows,cols){
return $("<div />")
.addClass("row")
.html(
addCols(cols)
);
};
function addCols(cols){
return _.times(cols, function() {
return $("<div />")
.addClass("col")
.html(getElement());
});
};
function getElement(){
var elements = [
"A",
"B",
"C"
];
return _.sample(elements);
};
$(".js-grid").click(function(){ grid(6,10) });
$(".js-grid2").click(function(){ grid(3,5,'grid2') });
HTML:
<button type="btn btn-info" class="js-grid">Click me</button>
<button type="btn btn-info" class="js-grid">Or me</button>
<button type="btn btn-info" class="js-grid2">Grid 2</button>
<div class="grid"></div><div class="grid2"></div>
<div class="grid"></div>
風格:
.row { width: 100%; clear: both; text-align: center; }
.col { display: inline-block; min-height: 20px; min-width: 20px; padding: 8px 10px; background-color: #ededed; margin: 1px; }
.col:hover { background-color: #333333; color: #ffffff; }
.grid, .grid2 { margin-bottom: 10px; }
我可以reccomend你對象的數組可以鏈接到你的圖片和玩數學蘭特獲取隨機圖片,並顯示您的身體標記中的每個細胞。 –
我實際上找出了一條出路,但我很高興看到更好的歸檔方式,這對學習很有幫助。 – icode