检索变量值而不是此变量的名称

时间:2012-07-19 12:45:54

标签: javascript json

我正在尝试为json结构添加一个值,如:

saveChamp.test = {"type":"","text":""};

没关系,但我想要“测试”,如:var test = $('blablabla').val();

在我的示例中,它不会获取test的值,但会创建一个名为test的条目。这不是我想要的。

帮助?

编辑:

var saveChamp = new Object();
var test = "Field1";
saveChamp.test = {"type":"ok","text":"kok"};

我希望该脚本在saveChamp中创建一个名为Field1的条目(ma变量test的值)。

4 个答案:

答案 0 :(得分:1)

啊,在这种情况下,在你编辑之后很明显你需要什么。

javascript中的每个对象都可以视为关联数组,并且可以通过变量的值来调用数组的属性。

var saveChamp = new Object();
var test = "Field1";
saveChamp[test] = {"type":"ok","text":"kok"};

这与:

相同
saveChamp["Field1"] = {"type":"ok","text":"kok"};

这将做你想要的,因为字段的名称作为变量字符串传递。

答案 1 :(得分:0)

不确定我完全理解你,因为这段代码没有多大意义。

JSON表示Javascript Object Notation

它用于通过纯文本传输变量。你不需要这个,因为你可以通过代码传输数据。

离。 1:

saveChamp.test = $('blablabla')).val();

将使对象saveChamp具有属性测试,其值为:$('blablabla'))。val();

离。 2:

saveChamp.test = {"type":"blablabla","text":$('blablabla')).val()};

希望在saveChamp的test属性中创建一个对象。 这实际上意味着:

saveChamp.test.type = "blabalbla"; 
saveChamp.test.text = $('blablabla')).val();

修改

我做了一个新答案,但是把它留在这里,因为它们都非常不同,而且都很有用。

答案 2 :(得分:0)

尝试使用括号表示法:

var test = $('blablabla').val();
saveChamp[test] = {
    "type": "",
    "text": ""
};

答案 3 :(得分:-1)

我看到你是如何设置你的值并设置是一个JSON对象,但如果这是你正在使用它的确切代码,则缺少“#”以通过Id获取元素并且还有一个额外的paren;

Trey使用:

var test = $('#blablabla').val(); 

saveChamp.test = {"type": "blablabla","text": test};