Jquery ajax响应数据插入相同的div id而不是基于checkbox id

时间:2012-01-11 13:06:50

标签: jquery ajax iteration each checkbox

我有这个JQuery代码:

jQuery("#form").click(function() {

$("input[name='copyno']:checked").each(function() {

    checkboxData = "copyno="+$(this).val();

id=$(this).val();

   jQuery.ajax({
      url: "renewall.php",
      type: "POST",
      data: checkboxData,
      cache: false,
      dataType: "text",
      success: function(data) {

    $("#" +id).html(data);             

    }
});
});
});

我想要做的是根据复选框值将响应数据放入特定的div中,在本例中为id,但响应数据仅显示在相同的div id中( id = $(this).val();)而不是在那里显示它具有相同的id值。

Som Kind og迭代问题

2 个答案:

答案 0 :(得分:2)

您在截屏视频中向我展示的代码副本:

$("input[name='copyno']:checked").each(function() {
    checkboxData = "copyno="+$(this).val();
    ids = $(this).val();

    jQuery.ajax({

       url: "renewall.php",
       type: "POST",
       data: checkboxData,
       cache: false,
       dataType: "text",
       success: function(data) {

          var divs = $(data).filter(function() { 
                                       return $(this).is('#stil2'); //<-- add semicolon
          });

          divs.each(function() {
             $("#" + ids).html(this);
          });
       }
    });
});

无论如何,重要的是要在id函数中正确声明click变量,如:

$("input[name='copyno']:checked").each(function() {
    checkboxData = "copyno="+$(this).val();
    var ids = $(this).val();

    //rest of your code...

});

请注意 div 之前的 var 实例化器。这应该可以解决您的问题。如果不这样做,则为第一次调用设置变量,但第二次调用将覆盖该变量。因此,当两个通话结束时,它们将具有相同的 ID 值,这是您的第二个div。

答案 1 :(得分:0)

在脚本开头使id成为一个全局变量,然后你就可以在ajax函数中使用它了:

var id=null;

/*... your code... */