Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript多维数组返回第一个值,然后失败_Javascript_Jquery_Arrays_Svg_Multidimensional Array - Fatal编程技术网

Javascript多维数组返回第一个值,然后失败

Javascript多维数组返回第一个值,然后失败,javascript,jquery,arrays,svg,multidimensional-array,Javascript,Jquery,Arrays,Svg,Multidimensional Array,我在var anzahl_der_svg中从html文档中提取所有svg元素。这很好,它返回我3,因为它应该。现在我想创建一个多维数组,在其中存储多个svg元素信息。结构是 [0][0]->svg的html代码 [0][1]->父容器的id javascript代码是: function getSVG(){ var anzahl_der_SVGs = $('svg').size(); alert(anzahl_der_SVGs); var svgArray =

我在var anzahl_der_svg中从html文档中提取所有svg元素。这很好,它返回我3,因为它应该。现在我想创建一个多维数组,在其中存储多个svg元素信息。结构是

[0][0]->svg的html代码

[0][1]->父容器的id

javascript代码是:

function getSVG(){

    var anzahl_der_SVGs = $('svg').size();
    alert(anzahl_der_SVGs);

    var svgArray    = new Array(anzahl_der_SVGs);
        svgArray[0] = new Array(2);

        $('svg').each(function( index ) {
            id = $(this).parent().parent().parent().parent().attr("id");
            var speichern = "widgetID" +id;
            svgArray[index][0] = $(this).html();
            svgArray[index][1] = speichern;
            alert(svgArray[index][0]);
            alert(svgArray[index][1]);
            $(this).attr("id", speichern);
        });
}

第一次迭代的警报工作正常,它向我显示svg html和小部件ID。在下一次迭代中,它停止并向我提供控制台输出“TypeError:svgArray[index]未定义”thx以获取任何帮助:)来自德国的问候语JavaScript没有多维数组。您所做的是为
svgArray
的第一个索引定义一个嵌套数组。您需要做的是为每个成员定义一个

您可以在
.each()
循环中执行此操作

$('svg').each(function( index ) {
    if (!svgArray[index]) {
        svgArray[index] = new Array(2)
    }

创建对象数组要简单得多:

var svgArray = [];
var cpt = 0;
$('svg').each(function( index ) {
        id = $(this).parent().parent().parent().parent().attr("id");
        var speichern = "widgetID" +id;
        svgArray.push({html: $(this).html(), id : speichern});        
        alert(svgArray[cpt].html);
        alert(svgArray[cpt].id);
        $(this).attr("id", speichern);
        cpt++;
    });

你的话有误导性。Javascript当然可以有多维数组;OP只是没有正确创建它。@Malvolio:他指的是实际的多维数组。JavaScript所拥有的并不是这样的。只是嵌套成员恰好也是长度相等的数组。矩形结构没有自动化或强制执行。你杀了我父亲。马尔沃里奥:是的,很抱歉。原来这只是一个很大的误会。我以为他吃了我的午餐,但后来我想起那天我没有带午餐。尴尬的。。。