在javascript上生成带有图像的表
我想创建一个按钮,生成一个3x3 HTML表,用于纸牌游戏,其中每个单元格对应一个图像。目前,我主要关注的是使用一个循序渐进的原理,使用从数组元素中提取的卡号填充单个单元格。这就是最终结果在HTML中的样子,它是从生成的脚本派生出来的在javascript上生成带有图像的表,javascript,html,image,html-table,Javascript,Html,Image,Html Table,我想创建一个按钮,生成一个3x3 HTML表,用于纸牌游戏,其中每个单元格对应一个图像。目前,我主要关注的是使用一个循序渐进的原理,使用从数组元素中提取的卡号填充单个单元格。这就是最终结果在HTML中的样子,它是从生成的脚本派生出来的 <table style="width:100%"> <tr> <td><img src="1.png"></td> <td><img sr
<table style="width:100%">
<tr>
<td><img src="1.png"></td>
<td><img src="2.png"></td>
<td><img src="3.png"></td>
</tr>
<tr>
<td><img src="4.png"></td>
<td><img src="5.png"></td>
<td><img src="6.png"></td>
</tr>
<tr>
<td><img src="7.png"></td>
<td><img src="8.png"></td>
<td><img src="9.png"></td>
</tr>
</table>
这就是我目前正在做的工作,虽然没有太大的成功
<!DOCTYPE html>
<html>
<body>
<table id="1">
</table>
<button onclick="createTable()">Create</button>
<script>
function createTable() {
var deck = [1,2,3,4,5,6,7,8,9];
function shuffle(o) { //v1.0
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}
shuffle(deck);
document.getElementById("1").innerHTML = "<tr><td>" + deck[0] + "</td><td>" + deck[1] + "</td><td>" + deck[2] + "</td></tr>" +
"<tr><td>" + deck[3] + "</td><td>" + deck[4] + "</td><td>" + deck[5] + "</td></tr>" +
"<tr><td>" + deck[6] + "</td><td>" + deck[7] + "</td><td>" + deck[8] + "</td></tr>" +
;
}
</script>
</body>
</html>
创造
函数createTable(){
var甲板=[1,2,3,4,5,6,7,8,9];
函数shuffle(o){//v1.0
对于(var j,x,i=o.length;i;j=Math.floor(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);
返回o;
}
洗牌(牌组);
document.getElementById(“1”).innerHTML=“+deck[0]+”“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”+
;
}
注意
9张牌的牌组是用一个非常基本和自解释的函数洗牌的
编辑。我的最终版本,这是返回破碎的图像
<!DOCTYPE html>
<html>
<body>
<table id="1">
</table>
<button onclick="createTable()">Create</button>
<script>
function createTable() {
var deck = [1,2,3,4,5,6,7,8,9];
function shuffle(o) {
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}
shuffle(deck);
document.getElementById("1").innerHTML = "<tr><td><img src=" + deck[0] + ".png'></td><td>" + deck[1] + "</td><td>" + deck[2] + "</td></tr>" +
"<tr><td>" + deck[3] + "</td><td>" + deck[4] + "</td><td>" + deck[5] + "</td></tr>" +
"<tr><td>" + deck[6] + "</td><td>" + deck[7] + "</td><td>" + deck[8] + "</td></tr>"
;
}
</script>
</body>
</html>
创造
函数createTable(){
var甲板=[1,2,3,4,5,6,7,8,9];
函数洗牌(o){
对于(var j,x,i=o.length;i;j=Math.floor(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);
返回o;
}
洗牌(牌组);
document.getElementById(“1”).innerHTML=“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”
;
}
您有一个额外的“+”
document.getElementById(“1”).innerHTML=“+deck[0]+”“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”;
应该会更好。你有一个额外的“+”
document.getElementById(“1”).innerHTML=“+deck[0]+”“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”;
应该可以更好地工作。当我加载您的代码时,我在浏览器控制台中收到以下消息: 未捕获的语法错误:意外标记 如果您更新以下代码,可能会有所帮助:
document.getElementById("1").innerHTML = "<tr><td>" + deck[0] + "</td><td>" + deck[1] + "</td><td>" + deck[2] + "</td></tr>" +
"<tr><td>" + deck[3] + "</td><td>" + deck[4] + "</td><td>" + deck[5] + "</td></tr>" +
"<tr><td>" + deck[6] + "</td><td>" + deck[7] + "</td><td>" + deck[8] + "</td></tr>" +
;
document.getElementById(“1”).innerHTML=“+deck[0]+”“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”+
;
为此:
document.getElementById("1").innerHTML = "<tr><td>" + deck[0] + "</td><td>" + deck[1] + "</td><td>" + deck[2] + "</td></tr>" +
"<tr><td>" + deck[3] + "</td><td>" + deck[4] + "</td><td>" + deck[5] + "</td></tr>" +
"<tr><td>" + deck[6] + "</td><td>" + deck[7] + "</td><td>" + deck[8] + "</td></tr>";
document.getElementById(“1”).innerHTML=“+deck[0]+”“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”;
要循环数组并使用图像创建表结构,可以执行以下操作,例如:
function createTable() {
var deck = [1,2,3,4,5,6,7,8,9];
function shuffle(o) { //v1.0
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}
shuffle(deck);
var html = '';
for (var i = 0; i < deck.length; i++) {
if (i%3 === 0) {
html += "<tr>";
}
html += '<td><img src="' + deck[i] + '.png"></td>';
if (i%3 === 2) {
html += "</tr>";
}
}
document.getElementById("1").innerHTML = html;
}
函数createTable(){
var甲板=[1,2,3,4,5,6,7,8,9];
函数shuffle(o){//v1.0
对于(var j,x,i=o.length;i;j=Math.floor(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);
返回o;
}
洗牌(牌组);
var html='';
对于(变量i=0;i
当我加载您的代码时,我会在浏览器控制台中看到以下消息:
未捕获的语法错误:意外标记
如果您更新以下代码,可能会有所帮助:
document.getElementById("1").innerHTML = "<tr><td>" + deck[0] + "</td><td>" + deck[1] + "</td><td>" + deck[2] + "</td></tr>" +
"<tr><td>" + deck[3] + "</td><td>" + deck[4] + "</td><td>" + deck[5] + "</td></tr>" +
"<tr><td>" + deck[6] + "</td><td>" + deck[7] + "</td><td>" + deck[8] + "</td></tr>" +
;
document.getElementById(“1”).innerHTML=“+deck[0]+”“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”+
;
为此:
document.getElementById("1").innerHTML = "<tr><td>" + deck[0] + "</td><td>" + deck[1] + "</td><td>" + deck[2] + "</td></tr>" +
"<tr><td>" + deck[3] + "</td><td>" + deck[4] + "</td><td>" + deck[5] + "</td></tr>" +
"<tr><td>" + deck[6] + "</td><td>" + deck[7] + "</td><td>" + deck[8] + "</td></tr>";
document.getElementById(“1”).innerHTML=“+deck[0]+”“+deck[1]+”“+deck[2]+”+
“+deck[3]+”+deck[4]+“+deck[5]+”+
“+deck[6]+”+deck[7]+“+deck[8]+”;
要循环数组并使用图像创建表结构,可以执行以下操作,例如:
function createTable() {
var deck = [1,2,3,4,5,6,7,8,9];
function shuffle(o) { //v1.0
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}
shuffle(deck);
var html = '';
for (var i = 0; i < deck.length; i++) {
if (i%3 === 0) {
html += "<tr>";
}
html += '<td><img src="' + deck[i] + '.png"></td>';
if (i%3 === 2) {
html += "</tr>";
}
}
document.getElementById("1").innerHTML = html;
}
函数createTable(){
var甲板=[1,2,3,4,5,6,7,8,9];
函数shuffle(o){//v1.0
对于(var j,x,i=o.length;i;j=Math.floor(Math.random()*i),x=o[--i],o[i]=o[j],o[j]=x);
返回o;
}
洗牌(牌组);
var html='';
对于(变量i=0;i
在通过删除构建html(tr和td)的最后一行的额外+来修复代码后,只需替换
"<td>" + deck[0] + "</td>"
“”+deck[0]+“”
借
“”
。。。等其他索引,如
deck[1]
,deck[2]
等。通过删除构建html(tr和td)的最后一行的额外+来修复代码后,只需替换
"<td>" + deck[0] + "</td>"
“”+deck[0]+“”
借
“”
。。。等其他索引,如
deck[1]
,deck[2]
等。如果要创建HTML元素,则不能将它们作为文本字符串写入并插入现有HTML元素中
您可以创建一个元素节点(以及文本节点,如果适用),并将其附加到现有的HTML元素中
这是一篇关于w3学校的文章,介绍如何使用JavaScript创建HTML标记
如果您的表总是9个单元格,那么为什么不直接写出HTML,给每个单元格一个唯一的id。然后您可以使用与您拥有的代码类似的代码
document.getElementById("cell_1").innerHTML = deck[0];
您需要为所有9个单元格/值包含此逻辑,尽管您可以循环thro