1

考虑以下循环 PHP 脚本的 Jquery Ajax。我有一些问题,因为它在第一个 div 中附加了来自服务器的内容,但其余的 div 是空的,我猜这是因为重复的 ID

第一个问题。由于这是可能的,

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

如您所见,每次附加时,我都会在 id "#name" 中添加 "1",所以第一个 span 的 id 是 "name1" 并遵循 "name2,依此类推"

我也想增加这个选择器:

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

例如,第一个选择器应该是 $('#name1').html(feedback.name)

第二个是 $('#name2').html(feedback.name)

等等。什么是正确的语法?

第二个问题:

考虑一下。

$("<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 回答