捕获在for循环内部传递给jQuery脚本的变量


Catching variable passed to jQuery script inside for-loop

检查以下代码:

jQuery(document).ready(function($){
    jQuery(myAjax.idinfo).change(function()
    {
        $value = $(this).val();
        jQuery.ajax({
            type : 'post',
            dataType : 'json',
            url : myAjax.ajaxurl,
            data : {
                action: 'getuser', 
                value: $value,
                //_nonce: myAjax.ajaxurl myAjax.nonce???????
            },
            complete: function(response){
                var parsed = JSON.parse(response.responseText)
                var arr = [];
                for(var x in parsed){ arr.push(parsed[x]);}
                for(var i = 1; i<= myAjax.fieldcount; i++)
                {
                    jQuery(myAjax.index + i).val(arr[i]);
                }
            }
        });
    });
});

请注意,myAjax是从php脚本传递的,因此所有内容都可以通过myAjax获得。现在在for循环中,我想使用myAjax.index1和index2等。现在我如何增加索引?我读过关于使用数组解决这个问题的文章。但是,如果我把myAjax中的所有内容都推到一个数组中,数组不仅会填充index1、index2等,还会填充其他值,所以这不是我想要的。

解决后,我将2个数组传递给jQuery脚本,如下所示:

wp_localize_script('ffd_js_script', 'myAjax', array(
        'ajaxurl' => admin_url('admin-ajax.php'),
        'fieldcount' => $myoptionValue['fieldcount'],
        'idinfo' => $myoptionValue['idinfo'])
        );
    wp_localize_script('ffd_js_script', 'myIndexArray', $arguments);

在jQuery中,我把所有东西都推到另一个数组中(不确定这是否必要),然后我可以迭代该数组,如下所示:

var indexArray = [];
                for(var y in myIndexArray){ indexArray.push(myIndexArray[y]);}
                for(var i = 0; i<= myAjax.fieldcount-1; i++)
                {
                    jQuery(indexArray[i]).val(arr[i+1]);
                }