2016-12-12 7 views
0

im действительно начинающий в javascript, поэтому я борюсь. Моя проблема - я создал объекты с конструктором с specfic названиями объектов,Создание переменных из массива

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, и когда я нажимаю их я толкать выбранные элементы (их идентификаторов в массив). Идентификатор входов аналогичен объектам

Например, var bulMa и его идентификатор «bulMa».

Когда я пытаюсь вызвать значения объекта с индексом массивов, он показывает uniefined. Может кто-нибудь сказать мне, что случилось? Это потому, что вне его функции fodd? Какую часть ядра 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); 
    }; 
} 
+1

Ничто не попадает в заз. – Lain

ответ

1

Ваш массив называется 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); 
    }; 
} 
+0

объявление. 1. sry, да, я изменил zaznaczone на zaz, но не во всех местах – jskorups

Смежные вопросы