我正在处理几个动态更新的选择框,就像一个动态更新make,model等的自动网站。在我的脚本的早期,我确定更改选择,然后识别下一个选择并从页面中拉出它的ID这样:
var next_select_id = $(next_select).attr('id');
我将其称为next_select_id
,因为任何给定select的HTML ID都对应于JSON响应中的父对象类型。
如果选择带有“A”和“B”的两个选项,则在更改A时,next_select_id
应为“B”。这将在我通过将next_select_id
与字符串连接起来生成URL的页面中稍后工作(例如,它生成http://testing.com/users/B
就好了)。
稍后当我尝试使用包含名称和id值的next_select_id
的父键处理JSON文件时,这样:
$.each(data, function(i, j){
row = "<option value=\"" + j.next_select_id.id + "\">" + j.next_select_id.name + "</option>";
$(row).appendTo(next_select);
});
在这种情况下,j.something.id
对应于ActiveRecord对象的ID。
它说“无法读取未定义的属性'id'”。在尝试此操作之前,我是否需要以某种方式转换next_select_id
?谢谢你的帮助!
答案 0 :(得分:0)
看起来你已经将next_select_id设置为ID字符串。只需删除$ .each中的额外.id即可。 (如果没有,请发布为$ .each设置next_select_id的代码。)
答案 1 :(得分:0)
我似乎对使用分配给变量的字符串的正确方法感到困惑。最后,修复是一个简单的符号更改:
j[next_select_id]["name"]