2016-06-28 80 views
0

我有一個動態創建的表,我需要如下圖所示 Table to representing the array 保存動態創建的表中的數據多維數組

從該存儲在一個多維數組檢索值,但我得到一個異常/錯誤說 「不能設置爲0屬性未定義」 exception

我的JS功能:

var DefAttrArray = new Array(100); 

    function storeDefinedStreamInfo(newAgent,i,e,ui) 
    { 
     var StrName= document.getElementById("StreamNameInput").value; 
     var StreamElementID = i; 
     var table = document.getElementById('attrtable'); 
     var tblerows = (table.rows.length)-1; 
     // DefAttrArray[i] = new Array(3); 
     // for (var w=3; w<3; w++) 
     // { 
     //  DefAttrArray[q][w] = new Array(tblerows); 
     // } 
     for (r = 1; r < table.rows.length; r++) { 
      for(var c=0; c<1;c++) { 
       var attrNm = table.rows[r].cells[c].innerHTML; 
       var attrTp = table.rows[r].cells[1].innerHTML; 
       createdDefinedStreamArray[i-1][2][r-1]= new Array(2); 
       createdDefinedStreamArray[i-1][2][r-1][0]=attrNm; 
       createdDefinedStreamArray[i-1][2][r-1][1]=attrTp; 
       alert(createdDefinedStreamArray[i-1][2][r-1][0] + "\n" + createdDefinedStreamArray[i-1][2][r-1][1]); 
      } 

     } 

     createdDefinedStreamArray[i-1][0]=StreamElementID; 
     createdDefinedStreamArray[i-1][1]=StrName; 
     createdDefinedStreamArray[i-1][2]=new Array(tblerows); 
     createdDefinedStreamArray[i-1][3]="Defined Stream"; 

     alert("createdDefinedStreamArray[i-1][2][w][0] : "+ createdDefinedStreamArray[i-1][2][w][0]); 

     var prop = $('<a class="streamproperty" onclick="doclickExp(this)"><b><img src="../Images/settings.png"></b></a> ').attr('id', (i)); 
     var showIcon = $('<img src="../Images/Defined.png"></b></a> ').attr('id', (i)); 
     newAgent.text(StrName).append('<a class="boxclose" id="boxclose"><b><img src="../Images/Cancel.png"></b></a> ').append(showIcon).append(prop); 
     dropCompleteElement(newAgent,e,ui); 
    } 

回答

0

最後,得到它的工作。

var DefAttrArray = new Array(100); 

    function storeDefinedStreamInfo(newAgent,i,e,ui) 
    { 
     var StrName= document.getElementById("StreamNameInput").value; 
     var StreamElementID = i; 
     var table = document.getElementById('attrtable'); 
     var tblerows = (table.rows.length)-1; 
     createdDefinedStreamArray[i][2]=new Array(tblerows); 


     for (r = 1; r < table.rows.length; r++) { 
      for(var c=0; c<1;c++) { 
       var attrNm = table.rows[r].cells[c].innerHTML; 
       var attrTp = table.rows[r].cells[1].innerHTML; 
       createdDefinedStreamArray[i][2][r-1]= new Array(2); 
       createdDefinedStreamArray[i][2][r-1][0]=attrNm; 
       createdDefinedStreamArray[i][2][r-1][1]=attrTp; 
      } 

     } 

     createdDefinedStreamArray[i][0]=StreamElementID; 
     createdDefinedStreamArray[i][1]=StrName; 
     createdDefinedStreamArray[i][3]="Defined Stream"; 
     createdDefinedStreamArray[i][4]= tblerows; 

     var prop = $('<a class="streamproperty" onclick="doclickDefine(this)"><b><img src="../Images/settings.png"></b></a> ').attr('id', (i)); 
     var showIcon = $('<img src="../Images/Defined.png"></b></a> ').attr('id', (i)); 
     newAgent.text(StrName).append('<a class="boxclose" id="boxclose"><b><img src="../Images/Cancel.png"></b></a> ').append(showIcon).append(prop); 
     dropCompleteElement(newAgent,e,ui); 
    }