现在我有以下代码,这是我完整代码的摘录。
console.log(characters);
var table= "<table><tr><td style='width: 100px; color: red;'>Name</td>";
table+= "<td style='width: 100px; color: red; text-align: left;'>Description</td>";
table+="<td style='width: 100px; color: red; text-align: left;'>Picture</td></tr>";
table+="<tr><td style='width: 100px; '>---------------</td>";
table+="<td style='width: 100px; text-align: right;'>---------------</td>";
table+="<td style='width: 100px; text-align: right;'>---------------</td></tr>";
for (var i = 0; i < characters.length; i++) {
console.log('in loop');
char_name = characters[i].data.results[0].name;
console.log(char_name);
char_description = characters[i].data.results[0].description;
image_url = characters[i].data.results[0].thumbnail.path+'/standard_medium.jpg';
table+="<tr><td style='width: 100px; text-align: left;'>" + char_name + "</td>";
table+="<td style='width: 100px; text-align: left;'>" + char_description + "</td>";
table+="<td style='width: 100px; text-align: left;'>"+'<img src=' + image_url
+' alt="hero icon"'+' style=float:left'+'>'+'</img></td></tr>';
};
table+= '</table>';
console.log(table);
$('#result').append(table);
字符是一个对象数组,这些对象具有我要放入html文件中的数据。永远不会输入for循环。 for循环中的console.log()都没有真正出现在我的控制台中,而当调用console.log(table)时,表html只是在循环外编写的html。这里有什么不对的地方?
答案 0 :(得分:0)
我的猜测是检查characters
数组中的元素。尝试console.log(characters.length);
和console.log(characters[0]);
答案 1 :(得分:0)
您不给字符长度。如果为空,则for循环永远不会触发
下面,我在Chrome调试器中演示如果将characters
设置为[1,2,3,4]
并在循环中设置了断点会发生什么情况。如您所见,然后将进入循环。您可以使用Control + Shift + J来访问调试器。
答案 2 :(得分:0)
characters.length为0。
否则,您的代码将进入循环或崩溃。
答案 3 :(得分:0)
感谢大家的快速反应!是的,即使console.log(characters)给了我一个完全填充的列表,characters.length为0。我意识到字符是异步填充的,这导致我要解决另一个整体问题。