1

PHP スクリプトをループする次の Jquery Ajax を検討してください。最初のdivにサーバーからのコンテンツを追加しますが、残りのdivは空であるため、いくつかの問題があります.IDが重複しているためだと思います

第 1 の質問。これが可能なので、

$("<span id='name" + counter + "'></span>")

ご覧のとおり、ID「#name」が追加されるたびに「1」を追加しているため、最初のスパンの ID は「name1」で、「name2 など」が続きます。

私はまた、このセレクターをインクリメントしたい:

$('#name').html(feedback.name)

たとえば、最初のセレクターは $('#name1').html(feedback.name) にする必要があります。

2 番目は $('#name2').html(feedback.name) です。

等々。そのための正しい構文は何ですか?

2 番目の質問:

このことを考慮。

$("<span id='name" + counter + "'></span>")

とにかく、そのdivを別の場所からロードして、同じオリジンポリシーの問題を経ることなく、以下と同じ結果を達成できますか? JSONP が役立つ場合は、使用できる構造を提案してください。

完全な Jquery Ajax コード:

var get_fb = (function(){
    var counter = 0;
    var $buzfeed = $('#BuzFeed');
    return function(){
        $.ajax({
            dataType : 'json',
            type: "GET",
            url: "Algor.php"
        }).done(function(feedback) {
            counter += 1;
            var $buzfeedresults = 
$("<span id='name" + counter + "'></span>");
            $('#name').html(feedback.name); 
            $buzfeedresults.append(feedback);
            $buzfeed.append($buzfeedresults);
            var $buzfeedDivs = $buzfeed.children('div');
            if ($buzfeedDivs.length > 7) { $buzfeedDivs.last().remove(); }
            setTimeout(get_fb, 2000);
        })
    };
})();
get_fb();

前もって感謝します。

4

1 に答える 1

0

なぜ単純ではないのですか:

// selects all 'span' elements, that have an 'id' attribute,
// which starts with the string 'name':
$('span[id^="name"]').filter(function(){
    // filters that collection, tests to see whether the 'id' follows the
    // starts-with 'name', ends-with one or more numbers, with nothing between:
    return /^name\d+$/.test(this.id);
});

JS フィドルのデモ

参考文献:

于 2013-10-25T07:03:47.703 に答える