0

次の JQuery ループを検討してください。これを追加します:

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

1問目。最初に追加された div の id が 1、2 番目の div の id が 2 などになるように、最初の div が追加された後に追加された 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>");
}
4

1 に答える 1

2

カウントする場合:

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();
于 2013-10-23T20:27:14.227 に答える