javascript - 附加 div 时,当超过 10 个时删除旧的附加 div

标签 javascript jquery loops html

考虑以下 JQuery 循环。它附加了这个:

"<div id='1'>" + feedback + "</div>"

第一个问题。 我想在附加第一个 div 后增加附加 div 的 id,以便第一个附加 div 的 id 为 1,第二个 div 的 id 为 2,依此类推。

第二个问题。 当div的数量达到10时,我想删除第一个附加的div。在我们的例子中是:

<div id="1">php result</div> 

这应该继续循环并删除旧的 div。

这是 Jquery ajax 循环:

new get_fb(); 
function get_fb(){
    var feedback = $.ajax({
        type: "POST",
        url: "algorithm.php",
        async: false
    }).success(function(){
        setTimeout(function(){get_fb();}, 8000);
    }).responseText;
    $('#BuzFeed').append("<div id='1'>" + feedback + "</div>");
}

最佳答案

用于计数:

var get_fb = (function() {
    var counter = 1;
    return function(){
        var feedback = $.ajax({
            ...
        }).responseText;
        $('#BuzFeed').append("<div id='" + counter + "'>" + feedback + "</div>");
    }
})();
get_fb();

并在之后自动删除

var $buzfeed = $('#BuzFeed').append("<div id='" + counter + "'>" + feedback + "</div>");

添加

var $buzfeedDivs = $buzfeed.children('div');
if ($buzfeedDivs.length > 10) { $buzfeedDivs.first().remove(); }

此外,您的代码使用了一些不太好的做法。重写,包括我的补充将是:

var get_fb = (function() {
    var counter = 0;
    var $buzfeed = $('#BuzFeed');
    return function(){
        $.ajax({
            type: "POST",
            dataType: "html", // based on chat
            url: "algorithm.php"
        }).done(function(feedback) {
            counter += 1;
            var $buzfeedresults = $("<div id='BuzFeedResult" + counter + "'></div>");
            $buzfeedresults.text(feedback);
            $buzfeed.append($buzfeedresults);
            var $buzfeedDivs = $buzfeed.children('div');
            if ($buzfeedDivs.length > 10) { $buzfeedDivs.first().remove(); }
            setTimeout(get_fb, 8000);
        }).fail(function(jqXhr, textStatus, errorThrown) {
            var $buzfeedresults = $("<div id='BuzFeedError'></div>");
            $buzfeedresults.text('Error: ' + textStatus);
            if (typeof console !== 'undefined') {
                console.error(jqXhr, textStatus, errorThrown);
            }
        });
    };
})();
get_fb();

关于javascript - 附加 div 时,当超过 10 个时删除旧的附加 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19551532/

相关文章:

javascript - 使用 Javascript 监听 Flash 事件

javascript - 焦点在 android 上不起作用

jquery - 如何将 handsontable 中下拉菜单的默认突出显示颜色更改为另一种颜色

c - 如何打印最多 n 个术语的序列,每个术语 = 前三个术语的总和,第一个术语 = 1 然后 2 3 6 11

javascript - 如何从javascript中的字符串构建数组?

javascript - 如何以一种或另一种方式对从帖子返回的数据求和

Jquery显示一个结果多次返回?

javascript - 允许 infinitescroll.js 运行 X 次,然后加载更多帖子

java - 停止功能所以价格不低于-500 Java

java - 为什么我的弹力球程序在第 5 次弹跳后没有停止?