2016-12-12 195 views
0

即時通訊真的是初學者進入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,當我點擊他們推我選擇的項目(其ID爲陣列)。 輸入ID與對象相同

例如var bulMa且該項目的ID是「bulMa」。

當我嘗試用數組索引調用對象的值時,它顯示無法解析。有人能告訴我什麼是錯的嗎?它是因爲它在功能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

沒有任何東西被推入zaz。 – 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

廣告。斯里,是的,我把zaznaczone改成了zaz,但不是在所有地方 – jskorups