【问题标题】:Displaying json data from server in basic html table using for loop, javascript only, problem with for loop?使用for循环在基本html表中显示来自服务器的json数据,仅限javascript,for循环有问题吗?
【发布时间】:2020-08-10 04:15:44
【问题描述】:

我有以下 Javascript 代码:

var request = new XMLHttpRequest();

request.open("GET", "http://localhost:8080/CarSales/rest/cars", true);
request.onreadystatechange = function(){
    if(request.readyState === XMLHttpRequest.DONE){
        var status = request.status;
        if (status === 0 || (status >= 200 && status < 400)){
            var cars = JSON.parse(request.responseText);
            var output = "";
            for(var i in cars){
                output ='<tr><td>'+cars[i].make+'</td><td>'+cars[i].model+'</td><td>'+cars[i].year+'</td> <td>'+cars[i].engine+'</td></tr>';
            }

            document.getElementById('table-body').innerHTML = output;
        }else{
            console.log("error");
        }
    }
};  
request.send(); 

以及以下 HTML:

<!DOCTYPE html>
<html>
<head>

<script src="js/Q4.js"></script>

<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <table id="table">
        <tr>
            <th>Make</th>
            <th>Model</th>
            <th>Year</th>
            <th>Engine</th>
        </tr>
        <tbody id="table-body"></tbody>
    </table>

</body>
</html>

目前它正确输出了表中json数据的最后一个对象: https://i.stack.imgur.com/V73pC.png

如何让 JS 代码将所有 json 对象输出到表中?也许通过更改 for 循环来遍历 json 数据?

【问题讨论】:

    标签: javascript json for-loop html-table


    【解决方案1】:

    你错过了在每个循环上追加。只需在输出后添加 += "";它没有附加这就是只显示最后一个循环值的原因。

    for(var i in cars){
        output +='<tr><td>'+cars[i].make+'</td><td>'+cars[i].model+'</td><td>'+cars[i].year+'</td> <td>'+cars[i].engine+'</td></tr>';
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2021-12-13
      • 2012-09-20
      相关资源
      最近更新 更多