【问题标题】:Save dynamically created table data to multidimensional array将动态创建的表数据保存到多维数组
【发布时间】:2016-06-28 08:47:13
【问题描述】:

我有一个动态创建的表,我需要从中检索值以存储在多维数组中,如下所示

但我收到一个异常/错误提示“无法将 0 的属性设置为未定义”

我的 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);
    }

【问题讨论】:

    标签: javascript arrays exception multidimensional-array dynamic


    【解决方案1】:

    最后,让它工作。

    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);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-02
      • 2015-09-22
      • 1970-01-01
      相关资源
      最近更新 更多