Javascript 使用字符串变量作为json对象名
我有一个由UI创建的动态字符串变量(Javascript 使用字符串变量作为json对象名,javascript,jquery,json,Javascript,Jquery,Json,我有一个由UI创建的动态字符串变量(valkey,在下面的代码中),我想将该变量用作JSON键,从TestObj(JSON对象)获取一个值。但是使用以下代码进行的尝试返回了一个错误 var valkey=$('#cityfrm').val()+"_TO_"+$('#cityto').val(); if($('#cityfrm').val()!="NIL" || $('#cityto').val()!="NIL") { $.each(TestObj.valkey, fu
valkey
,在下面的代码中),我想将该变量用作JSON键,从TestObj(JSON对象)获取一个值。但是使用以下代码进行的尝试返回了一个错误
var valkey=$('#cityfrm').val()+"_TO_"+$('#cityto').val();
if($('#cityfrm').val()!="NIL" || $('#cityto').val()!="NIL")
{
$.each(TestObj.valkey, function() {
var durn=this.duration;
var prc=this.price;
var curlegs=this.legs;
// updating ui
});
}
谢谢你的帮助
TestObj.valkey
将在TestObj
中查找键valkey
,该键在您的情况下未定义,这就是您获得错误的原因
如果要从变量中查找键,则需要使用语法TestObj[valkey]
例:
虽然下面的答案从技术上回答了这个问题,但我想指出,这确实是非常基本的javascript。我强烈建议您在尝试解决类似问题之前先学习javascript。这个问题就像有人用C编写代码,问如何从指针中获取值
var valkey=$('#cityfrm').val()+"_TO_"+$('#cityto').val();
if($('#cityfrm').val()!="NIL" || $('#cityto').val()!="NIL") {
$.each(TestObj[valkey], function() {
var durn=this.duration;
var prc=this.price;
var curlegs=this.legs;
// updating ui
});
}