Javascript - 如何调用该对象?

时间:2014-04-24 04:55:58

标签: javascript jquery

正如您所看到的,我创建了三个对象,每个对象都有不同的数组。

var redmeat = {options: ["beef", "steak", "kangaroo"]},
    whitemeat = {options: ["chicken", "turkey"]},
    fish = {options: ["salmon", "tuna"]};

然后,在HTML中,我创建了一个选择字段,其中包含三个相应的选项。

<select name="meat-type">
    <option value="redmeat">Red meat</option>
    <option value="whitemeat">White meat</option>
    <option value="fish">Fish</option>
</select>

现在,每当用户选择该字段时,我希望能够在我的控制台中显示正确的数组。 (例如,当选择红肉时,控制台将记录&#34;牛肉&#34;,&#34;牛排&#34;,&#34; kangaroo&#34;。)

$('select[name=meat-type]').change(function(){
    var e = $("select[name=meat-type] option:selected").val();
    function updatefield (e){
        console.log(e); //this works, easy.
        f = e.options; //but this doesn't work, return as undefined
        console.log(f);
    };          
    updatefield(e);
});

所以问题是;我该如何调用该对象?

3 个答案:

答案 0 :(得分:3)

首先,您需要修改对象并将其放入单个对象中。

之后,您可以轻松调用对象键并获取其值。

var meatObj = {
  redmeat: ["beef", "steak", "kangaroo"],
  whitemeat: ["chicken", "turkey"],
  fish: ["salmon", "tuna"]
};

$('select[name=meat-type]').change(function(){
  console.log(meatObj[this.value]);
});

以上代码的fiddle

答案 1 :(得分:2)

不是声明这些变量,而是构建一个对象:

var meats = {
  redmeat: {options: ["beef", "steak", "kangaroo"]},
  whitemeat: {options: ["chicken", "turkey"]},
  fish: {options: ["salmon", "tuna"]}
};

然后:

    f = meats[e].options;

答案 2 :(得分:0)

对于我生病的迟到回复感到抱歉,谢谢你的所有答案,但我正在寻找的那种答案是eval方法。

所以我要做的就是......

    f = eval(e); //and then...
    g = f.options;

完成!