JavaScript自动在jQuery和AJAX中递增变量

问题描述

| 我有使用jQuery和AJAX的JavaScript,它们创建了一个动态数组,该数组具有一些用于AJAX请求的值,如下所示;
<script type=\"text/javascript\">
var array = Array(\"y\",\"y\",\"x\",\"y\");
function updateBackground(cellId,titleId) {
    var i = 0;
    $.ajax({
        type: \"POST\",url: \"ajax.PHP\",data: {
          filename: Array(array[i],\"testdata\",$(\"#\"+titleId).html())
        },success: function(response){
          $(\"#\"+cellId).css(\"background-image\",\"url(\'pdfthumb/\" + response + \"\')\");
        }
    });
i++;
}
</script>
假设脚本为每个AJAX请求在
array[i]
中的数组中提交值。我做了一个变量
var i
,它会自动递增。.但是脚本无法正常工作。 如何解决语法错误?     

解决方法

        每次您呼叫
updateBackground()
时,i = 0(再次)。可能是您必须在函数之外初始化i。 如果
i > array.length
会怎样?我将重命名该变量。     ,        您没有迭代器。每次函数运行时,变量i都会设置为0。最后的增量是无用的。 也许您需要这样的东西?
var array = Array(\"y\",\"y\",\"x\",\"y\");
function updateBackground(cellId,titleId) {
    for( var i = 0; i < array.length; i++ ) {
        $.ajax({
            type: \"POST\",url: \"ajax.php\",data: {
              filename: Array(array[i],\"<?php echo $dir; ?>\",$(\"#\"+titleId).html())
            },success: function(response){
              $(\"#\"+cellId).css(\"background-image\",\"url(\'pdfthumb/\" + response + \"\')\");
            }
        });
    }
}
    ,        每次调用“ 6”功能时,都会重新初始化“ 10”变量。它只是一个局部变量,函数完成后立即被GC销毁。您可以执行以下操作:
var UpdateBackground = {
    array: [..],counter: 0,doUpdate: function(cellId,titleId) {
        // AJAX request

        this.counter++;
    }
};

UpdateBackground.doUpdate(1,1);
UpdateBackground.doUpdate(1,1);
    ,        我认为您应该将整个数组作为逗号分隔的字符串发送,而仅发出一个ajax请求,因为http请求很昂贵,并相应地更改服务器端代码。并以数组的形式获取Cellid。 如果您认为自己的清单或表格很长,可能就像很多请求一样。在客户端代码中执行操作,在服务器代码中执行操作,并尽可能减少http请求的数量。 并在数组上使用join方法。
    var arr = [ \'y\',\'y\' ]; 
    arr.join(\',\'); 
// outputs y,y 
    ,        我已修复它...非常感谢@ Jed,@ Pointy,@ Crozin和@Lord Vader帮助我弄清楚了.... :) 我只是将loop13ѭ移到循环之外。...在
var array
之上,就像;
var i = 0;
var array = Array(\"y\",\"x\");