XML到JQUERY,显示数据,但循环内容

时间:2011-03-02 15:57:13

标签: jquery xml ajax

我有一些jquery代码,用于加载JSP Servlet生成的XML文件的内容。

这个想法是它提取信息然后显示它,同时每1秒刷新一次。

我遇到的问题是每次刷新它只是将数据添加回旧数据,所以它只是循环出相同的值:

这是我的代码:

    <script>


        $(document).ready(function() {




        });
    </script>

如何让它显示一次,然后当它刷新时,清除它自己。

由于

2 个答案:

答案 0 :(得分:1)

将您的行$('#tidm').append($(html));替换为$('#tidm').empty().append($(html));

答案 1 :(得分:0)

呼叫:

$('#tidm').html(''); // .empty() is slightly faster
在每个循环之前

,这将清除旧的HTML

编辑: 我的初步答案只是清除html,但有些评论指出了原始问题代码中的有效性能问题。 因此,虽然原始代码的性能不是问题的主题,但我将用我认为更高效的方式更新我的答案。

我没有测试过这个,但意图应该是明确的。

$(document).ready(function() {
    var $tidm = $('#tidm');
    var html;
    setInterval(function() {
        $.get('Stocks', function(data) {
            html = '';
            $tidm.empty(); // using empty instead of .html('') as suggested
            $(data).find('stock').each(function() {
                var $stock = $(this);
                var tidm = $stock.find("tidm").text();
                var name = $stock.find("name").text();
                var price = $stock.find("price").text();
                var change = $stock.find("change").text();
                html += '<p>tidm = ' + tidm + '</p>';
                html += '<p>name =' + name + '</p>';
                html += '<p>price = ' + price + '</p>';
                html += '<p>change = ' + change + '</p>';
            });
            $tidm.html(html);
        });
    }, 1000); // 1000 milliseconds = 1 second.
});

如果可以做出任何其他改进或错误,我已在评论中告知我。