You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery AJAX成功回调中动态访问JSON返回属性?

解决方案

你遇到的问题是因为点语法只能访问固定命名的对象属性,而你构造的trait_path是动态变量,这时候必须改用方括号[]语法来实现动态属性访问。

修改方式很简单,把data.trait_return.trait_path替换成data.trait_return[trait_path]即可——方括号允许你传入字符串变量作为属性名,正好匹配你通过trait + "_path"构造的字段名。

修改后的完整代码:

$.ajax({
        url         : 'start.php',
        type        : 'POST',
        data        : form_data,
        dataType    : "JSON",
        success     : function (data) {

            var traits = ["background","face","body","back","ears","head","bandana","legs"];
            $.each(traits, function(index, trait) {
                var trait_path = trait + "_path";
                // 用方括号语法访问动态属性
                $('#'+trait+'_select').val(data.trait_return[trait_path]).prop("selected", "selected");
            })
        }
})

简单补充:

  • 点语法(如obj.property):适合属性名明确固定的场景
  • 方括号语法(如obj[variable]):支持用变量或动态拼接的字符串作为属性名,是处理这类动态访问需求的标准方式

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:12:30