jquery .each()和$ .post()仅适用于1个元素

时间:2012-12-28 13:35:07

标签: jquery ajax

我想抓住我所有的课程“保留”(有表格单元格)。我想通过jquery $ .post()将每个单元格的ID发送到一些php方法中。这是我的JQuery代码:

var cell_id;
$('.reserved').each(function()
{
    cell_id = $(this).attr('id');
    $.post("/controller/method/",{id: cell_id},function(data,status,xhr)
    {
        if(status=="success")
        {
        }
    })
});

如果只有一个单元格保留了类,那么它可以正常工作,但是当不止一个单元格时,它根本不起作用!

2 个答案:

答案 0 :(得分:2)

您有一个名为cell_id的共享全局变量,似乎没有任何用途。摆脱它:

$('.reserved').each(function()
{
    $.post("/controller/method/",{id: $(this).attr('id')},function(data,status,xhr)
    {
        if(status=="success")
        {
        }
    })
});

答案 1 :(得分:2)

如果您只想使用一个呼叫发送所有id值,则需要采用不同的方法:

var cells = [];

$('.reserved').each(function() {
    cells.push(this.id);
}
$.post("/controller/method/",{ids: cells},function(data,status,xhr) {
    if(status=="success")
    {
    }
});

这会构建一个id值列表,您可以使用单个调用将其发送到PHP(我假设您正在使用它)为$_POST['ids']; AJAX requesta价格昂贵,因此最好将它们保持在最低限度。