2016-11-16 71 views
1

我有我的表有問題,我需要把幾個變量在我的表,這是我的錯誤問題JS表

TypeError: tabproduit[i] is undefined

tabproduit[i][0] = $(this).text();

,這是我的代碼

var tabproduit = new Array(new Array()); 
var i = 0 ; 
$(".eachnom").each(function(index) { 
    tabproduit[i][0] = $(this).text(); 
    i++; 
}); 

但是,當我不把i++;我沒有錯誤,但我只有1變量在我的表;如何把這個i++;

在此先感謝

+1

使用'index'而不是'i'.Its也在每個函數調用中遞增。像這樣'tabproduit [index] [0]' – prasanth

+0

問題是你還沒有顯示你的html部分 – Mahi

回答

0

問題是你得到的錯誤,因爲JS提供自然單維數組,你可以擴展它分爲兩個受以下約定維

var s = [[],[],[]] 

如果沒有,那麼你會得到陣列[ith]的位置總是未定義的

所以我給你的建議是首先得到行數然後定義

s [r1] = []; S [R2] = [] ...等,可以使用循環

,那麼你就可以做S [R1] [C1]操作

希望它有助於

-2

這可以幫助您與您的代碼:

ar tabproduit = new Array(new Array()); 

$(".eachnom").each(function(index) { 
    tabproduit[index][0] = $(this).text(); 
}); 
+0

雖然這可能回答這個問題,但向代碼添加解釋是一種很好的方式。 – BDL

1

無需i你已經從jQuery方法each()的景氣指數,只是用它:

var tabproduit = new Array(new Array()); 

$(".eachnom").each(function(index) { 
    tabproduit[index][0] = $(this).text(); 
}); 

希望這會有所幫助。

+0

我總是有同樣的錯誤: TypeError:tabproduit [index] is undefined tabproduit [index] [0] = $(this).text(); – weymeels

+0

你想要的'輸出'是什麼?你想如何讓數組'tabproduit'看起來像。 –

0

變化tabproduit[0][index]

var tabproduit = new Array(new Array()); 
 

 
$(".eachnom").each(function (index) { 
 
    tabproduit[0][index] = $(this).text(); 
 
    
 
}); 
 
console.log(tabproduit)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p class="eachnom">dcbmc</p> 
 
<p class="eachnom">cnc</p> 
 
<p class="eachnom">xcjx</p> 
 
<p class="eachnom">xmcn</p> 
 
<p class="eachnom">xcnx</p>

+0

它返回什麼? '$(「.eachnom」)'?數組或對象如果數組然後什麼數組感謝 – Mahi

+0

,像你一樣工作,但我需要像這樣tabiserit [index] [0] = $(this).text();並且它沒有工作 – weymeels

+0

只是這樣的產品的名稱:FAUTEUIL RELEV AVALON G4 BEIG – weymeels

0

由於錯誤說「tabproduit [i]是未定義的」。您必須在循環內初始化tabproduit [i]。 嘗試:

var tabproduit = new Array(new Array()); 
var i = 0 ; 
$(".eachnom").each(function(index) { 
console.log(index); 
tabproduit[i]= new Array(); 
    tabproduit[i][0] = $(this); 
    i++; 
}); 

PS:代替使用新的Array()是優選使用[];

0

這應該工作:

var tabproduit = []; 
var i = 0 ; 
$(".eachnom").each(function() { 
    tabproduit.push([$(this).text()]); 
    i++; 
}); 

但我認爲你正在試圖做的是這樣的:

var tabproduit = []; 
var i = 0 ; 
$(".eachnom").each(function() { 
    tabproduit.push($(this).text()); 
    i++; 
}); 

嗯,這取決於你的陣列的實際結構。 乾杯..!