javascript - 从数组创建变量

标签 javascript html arrays input

我真的是 javascript 的初学者,所以我很挣扎。我的问题是 - 我使用具有特定对象名称的构造函数创建了对象,

function Food (name, Cal, price, Fat, Carb, Protein, Sugar) {
    this.name = name;
    this.Cal = Cal;
    this.price = price;
    this.Fat = Fat;
    this.Carb = Carb;
    this.Protein = Protein;
    this.Sugar = Sugar;
}


//bul
var bulPs = new Food("Bul"+" "+"Psz",120,3.50,36,80,45,78);
var bulSz = new Food("Bul"+" "+"Sez",140,2.90,34,75,33,68);
var bulBr = new Food("Bul"+" "+"bric",136,2.89,39,67,41,75);
var bulMa = new Food("Bul"+" "+"Man",157,3.20,42,56,36,78);

我有 checkboxex,当我单击它们时,我会推送所选项目(它们的 id 到数组中)。 输入的 ID 与对象相同

例如 var bulMa,该项目的 id 是“bulMa”。

当我尝试使用数组索引调用对象的值时,它显示 undiefined。有人能告诉我出了什么问题吗?是因为它超出了功能范围吗?我应该了解 JS 核心的哪一部分来处理这些问题。谢谢

var zaz = [];
var inputs = document.getElementsByTagName('input');

for (var i=0; i< inputs.length; i++)
{
    inputs[i].onfocus = function() {
        zaznaczone.push(this.id);
        console.log(zaz);
        console.log(zaz[0].name);
    };
}

最佳答案

您的数组名为 zaz,但您正在插入 zaznaczone

此外,zaz[0].name 也将是未定义的; zaz[0] 是元素的 Id,因此也是对象的name

var zaz = [];
var inputs = document.getElementsByTagName('input');

for (var i = 0; i < inputs.length; i++) {
    inputs[i].onfocus = function() {
        zaz.push(this.id);
        console.dir(zaz);
    };
}

关于javascript - 从数组创建变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41110265/

相关文章:

arrays - 将 Object.assign 与 Observable 数组一起使用

javascript - TypeScript 中 JavaScript 的等价物

javascript - bootbox.js 回调不起作用

javascript - Angular 材表加载排序后的数据

html - Bootstrap 容器不是全宽(屏幕左右两侧的空白区域)?

c - 将结果存储在c中的数组中

arrays - 从 Swift 字典中的数组获取值

javascript - 意外的标识符修复

jquery 复选框逻辑不起作用

php - 将输入按钮更改为图像?