首页 > 解决方案 > 无法使用 Javascript 刷新 Ajax 数据

问题描述

我有一个脚本:

    <script type="application/javascript">
    var ajax = window.setInterval(function(){
        $.ajax({
            cache: false,
            url: 'data.php',
            type: 'get',
            dataType: 'JSON',
            success: function(response){
                var len = response.length;
                $("#getAjax").append("<div id='getAjax2' class='content content-"+len+"'></div>")
                for(var i=0; i<len; i++){
                    var title = response[i].title;
                    var live = response[i].live;
                    var div_result = "<div class='result'>" +
                "<div class='title'>" + title + "</div>" +
                "<div class='number bnum'>" + live + "</div>" +
                "</div>";

                    $("#getAjax2").append(div_result);
                }

            }
        });
    }, 5000);
    </script>

它仅在页面加载后完美加载数据一次,但不再刷新。

我正在尝试每 5 秒刷新一次此数据。

有什么建议么?

标签: javascriptajax

解决方案


正如@Shidersz 所指出的,您的 div 具有相同的 ID。这是一个稍加修改的版本,将响应添加到新的 div:

<script type="application/javascript">
    var ajax = window.setInterval(function(){
        $.ajax({
            cache: false,
            url: 'data.php',
            type: 'get',
            dataType: 'JSON',
            success: function(response){
                var len = response.length;
                var div = document.createElement('div');
                $("#getAjax").append(div).attr('class', "content content-"+len);
                for(var i=0; i<len; i++){
                    var title = response[i].title;
                    var live = response[i].live;
                    var div_result = "<div class='result'>" +
                        "<div class='title'>" + title + "</div>" +
                        "<div class='number bnum'>" + live + "</div>" +
                        "</div>";

                    $(div).append(div_result);
                }

            }
        });
    }, 5000);
    </script>

推荐阅读