不进入JavaScript“ for”循环(用于添加到表)

时间:2018-10-05 02:15:05

标签: javascript

现在我有以下代码,这是我完整代码的摘录。

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。这里有什么不对的地方?

4 个答案:

答案 0 :(得分:0)

我的猜测是检查characters数组中的元素。尝试console.log(characters.length);console.log(characters[0]);

答案 1 :(得分:0)

您不给字符长度。如果为空,则for循环永远不会触发

下面,我在Chrome调试器中演示如果将characters设置为[1,2,3,4]并在循环中设置了断点会发生什么情况。如您所见,然后将进入循环。您可以使用Control + Shift + J来访问调试器。

enter image description here

答案 2 :(得分:0)

characters.length为0。

否则,您的代码将进入循环或崩溃。

答案 3 :(得分:0)

感谢大家的快速反应!是的,即使console.log(characters)给了我一个完全填充的列表,characters.length为0。我意识到字符是异步填充的,这导致我要解决另一个整体问题。