我有以下代码遍历我的行和列
for (var j=0; j < cols; j++) {
for (var k=0; k < cols; k++) {
alert(data[j][i])
if(data[j][i].endsWith(".jpg"))
{
var img = document.createElement('img');
img.src = data[j][i];
img.onload = function() { //check to make sure that the
tableData += '<td>' + img + '</td>';
};
}
else
{
tableData += '<td>'+data[j][i]+'</td>';
}
break;
}
}
我正在尝试创建图像,但在该位置没有任何弹出窗口。知道我可能做错了什么吗?我也尝试了没有.onload,然后弹出[object HTMLImageElement]
答案 0 :(得分:2)
img
持有对象,而不是HTML
字符串。请改为使用<img>
代码作为string
!onload
事件是异步的,回调可以稍后调用!for (var j = 0; j < cols; j++) {
for (var k = 0; k < cols; k++) {
alert(data[j][i])
if (data[j][i].endsWith(".jpg")) {
var img = '<img src="' + data[j][i] + '">';
tableData += '<td>' + img + '</td>';
} else {
tableData += '<td>' + data[j][i] + '</td>';
}
break;
}
}
答案 1 :(得分:0)
您正在第二个循环中迭代k
但是您正在调用data[j][i]
。我想你需要打电话
data[j][k]
如果第一个循环遍历列,则第二个循环应该遍历行,除非行和列相等。
for (var k=0; k < rows; k++) {