[英]Creating a dynamic grid of divs with Javascript
我想创建一个 HTML div 网格,该网格将具有相同的行数和列数,但行/列数基于将传递给 Javascript 函数的特定数字。
例如,如果数字为 3,则网格将为 3 行 3 列
如果数字为 4,则网格将为 4 行 4 列..等
在 3 的情况下,输出的代码需要类似于:
<div class="row">
<div class="gridsquare">1</div>
<div class="gridsquare">2</div>
<div class="gridsquare">3</div>
</div>
<div class="row">
<div class="gridsquare">4</div>
<div class="gridsquare">5</div>
<div class="gridsquare">6</div>
</div>
<div class="row">
<div class="gridsquare">7</div>
<div class="gridsquare">8</div>
<div class="gridsquare">9</div>
</div>
什么是遍历 javascript 的好方法,以便可以识别正确的元素以添加行 div 开始或结束标记 (?)
沿着这些路线的东西应该对你有用。
<html><head>
<script language="javascript">
function genDivs(v){
var e = document.body; // whatever you want to append the rows to:
for(var i = 0; i < v; i++){
var row = document.createElement("div");
row.className = "row";
for(var x = 1; x <= v; x++){
var cell = document.createElement("div");
cell.className = "gridsquare";
cell.innerText = (i * v) + x;
row.appendChild(cell);
}
e.appendChild(row);
}
document.getElementById("code").innerText = e.innerHTML;
}
</script>
</head>
<body>
<input type="button" onclick="genDivs(6)" value="click me">
<code id="code"></code>
</body>
</html>
结果:
<div class="row">
<div class="gridsquare">
1
</div>
<div class="gridsquare">
2
</div>
<div class="gridsquare">
3
</div>
<div class="gridsquare">
4
</div>
<div class="gridsquare">
5
</div>
<div class="gridsquare">
6
</div>
</div>
<div class="row">
<div class="gridsquare">
7
</div>
<div class="gridsquare">
8
</div>
<div class="gridsquare">
9
</div>
<div class="gridsquare">
10
</div>
<div class="gridsquare">
11
</div>
<div class="gridsquare">
12
</div>
</div>
<div class="row">
<div class="gridsquare">
13
</div>
<div class="gridsquare">
14
</div>
<div class="gridsquare">
15
</div>
<div class="gridsquare">
16
</div>
<div class="gridsquare">
17
</div>
<div class="gridsquare">
18
</div>
</div>
<div class="row">
<div class="gridsquare">
19
</div>
<div class="gridsquare">
20
</div>
<div class="gridsquare">
21
</div>
<div class="gridsquare">
22
</div>
<div class="gridsquare">
23
</div>
<div class="gridsquare">
24
</div>
</div>
<div class="row">
<div class="gridsquare">
25
</div>
<div class="gridsquare">
26
</div>
<div class="gridsquare">
27
</div>
<div class="gridsquare">
28
</div>
<div class="gridsquare">
29
</div>
<div class="gridsquare">
30
</div>
</div>
<div class="row">
<div class="gridsquare">
31
</div>
<div class="gridsquare">
32
</div>
<div class="gridsquare">
33
</div>
<div class="gridsquare">
34
</div>
<div class="gridsquare">
35
</div>
<div class="gridsquare">
36
</div>
</div>
var n=4;//take grid column value as you want
for(var i = 0; i < n; i++) {
document.body.innerHTML+='<div class="row">';
for(j = 0; j < n; j++) {
document.body.innerHTML+='<div class="gridsquare">' + (i*5+j+1) + '</div>';
}
document.body.innerHTML+='</div>';
}
var grd="";
var rowCount=3;
for(var i=0; i<rowCount; i++){
/*here make whole string with row id to make identification of row then
您可以选择特定行 */
}
$(yourelement).append(grd);
我认为这将是识别行的好方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.