2016-02-29 61 views
0

我是編碼方面的初學者。我試圖找到類似的問題,但沒有適當的結果。從HTML輸入「undefined」發送的對象屬性

我正在寫一個代碼,其中的HTML表單將其值發送到對象的屬性,然後我想打印它在文檔中使用innerHTML方法。我將對象保存在數組中,然後我可以操縱它們。

當我向我的數組中添加一個更多維時出現了一些問題(arr[i][j]在下面的代碼中 - 第二維將需要更進一步) - 然後打印時對象的屬性更改爲「未定義」。我應該怎麼做才能在數組的第二維中訪問對象的屬性(僅使用JS)?這是我的JS代碼:

var pro = 0; 
 
var ctg = 1; 
 
var arr = new Array(ctg); 
 
arr[0] = new Array(pro) 
 

 
function AddProduct() { 
 
    var n = document.getElementById('name').value; 
 
    var p = document.getElementById('price').value; 
 
    pro++; 
 
    for (i = arr[0].length; i < pro; i++) { 
 
    arr[0].push([{ 
 
     name: n, 
 
     price: p 
 
    }]); 
 
    } 
 
    var content = ''; 
 
    for (i = 0; i < arr.length; i++) { 
 
    for (j in arr[i]) { 
 
     content += arr[i][j].name + ' price is ' + arr[i][j].price + '<br>'; 
 
    } 
 
    } 
 
    document.getElementById('p').innerHTML = content; 
 
};

和HTML中body

<p id="p"></p> 
 
<input type="text" id="name" placeholder="name"> 
 
<br> 
 
<input type="text" id="price" placeholder="price"> 
 
<br> 
 
<input type="button" value="OK" onclick=A ddProduct()>

回答

0

嘗試代

onclick="AddProduct()"

onclick=A ddProduct()

html;和在

content += arr[i][j][0].name + ' price is ' + arr[i][j][0].price + '<br>';

[0]添加用於

content += arr[i][j].name + ' price is ' + arr[i][j].price + '<br>';

如你在第一for環推包含一個對象的陣列,以arr。引用數組的索引,使用括號標記在索引陣列的0arr

var pro = 0; 
 
var ctg = 1; 
 
var arr = new Array(ctg); 
 
arr[0] = new Array(pro) 
 

 
function AddProduct() { 
 
    var n = document.getElementById('name').value; 
 
    var p = document.getElementById('price').value; 
 
    pro++; 
 
    for (i = arr[0].length; i < pro; i++) { 
 
    arr[0].push([{ 
 
     name: n, 
 
     price: p 
 
    }]); 
 
    } 
 
    var content = ''; 
 
    for (i = 0; i < arr.length; i++) { 
 
    for (j in arr[i]) { 
 
     content += arr[i][j][0].name + ' price is ' + arr[i][j][0].price + '<br>'; 
 
    } 
 
    } 
 
    document.getElementById('p').innerHTML = content; 
 
};
<p id="p"></p> 
 
<input type="text" id="name" placeholder="name"> 
 
<br> 
 
<input type="text" id="price" placeholder="price"> 
 
<br> 
 
<input type="button" value="OK" onclick="AddProduct()">

檢索對象