我在var anzahl_der_SVGs中提示我的html文档中的所有svg-Elements。工作正常,它返回我应该的3。现在我想创建一个多维数组,我将存储几个svg-Element信息。结构是
[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] is undefined”thx for any help :)来自德国的最佳问候
答案 0 :(得分:2)
JavaScript没有多维数组。你所做的是为svgArray
的第一个索引定义一个嵌套数组。您需要做的是为每个成员定义一个。
您可以在.each()
循环中执行此操作。
$('svg').each(function( index ) {
if (!svgArray[index]) {
svgArray[index] = new Array(2)
}
答案 1 :(得分:0)
创建一个对象数组会简单得多:
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++;
});