如何增加jquery选择器的值

时间:2013-10-25 06:59:57

标签: javascript jquery ajax jquery-selectors jsonp

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

第1个问题。这是可能的,

$("<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();

提前致谢。

1 个答案:

答案 0 :(得分: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 Fiddle demo

参考文献: