1

好的,我确定这很简单,但我不是 jquery 专家。我有一个将数组作为变量返回的 ajax 调用。我无法访问该数组。

这就是我想要做的。

我的数组已设置,以便键与我页面上输入的 id 匹配。我想遍历我的输入,如果有一个与输入的 id 匹配的键,则将该输入的值设置为数组中的值。所以这是我到目前为止所拥有的:

function populateFields(table_name, user_id, div){
    $.ajax({
        data:{
            mode:'getInfo',
            table_name: table_name,
            user_id: user_id                            
        },
        url:'my_page.php',
        type: "POST",
        dataType: "text",
        success:function(data){
            data=$.parseJSON(data);
            if(data.error != undefined){
                if(data.error !== false){
                    showError(data.error);
                } else {
                    var inputName="";

                    $('#'+div+' > input').each(function(){
                        inputName=$(this).attr('id');
                        /*Check to see if inputName is a key and if so, set the value of this input to the value matching the key*/
                    });
                }
            } else {
                showError('The script was not called properly, because data.error is undefined.');
            }
        },
        complete:function(){

        }
    });
}

返回的变量的名称称为 info。所以 data.info 是包含信息的对象。

在调试器中 data.info 有这个设置:

目的
2:对象
  同意:“不”
  城市:空
  电子邮件:“email@email.com”

知道 /* */ 标记之间的代码是什么吗?

4

1 回答 1

2

注意:使用 Object.hasOwnProperty() 有一些注意事项,请参阅https://stackoverflow.com/a/136411/940754

不知道为什么您的 data.info 变量会使用“2”键返回,但请尝试:

// check to see if input name is a key
if(data.info[2].hasOwnProperty(inputName)) {

    // set the value
    $(this).value = data.info[2][inputName];
}
于 2013-06-21T16:46:51.213 回答