Javascript多维数组返回第一个值,然后失败
我在var anzahl_der_svg中从html文档中提取所有svg元素。这很好,它返回我3,因为它应该。现在我想创建一个多维数组,在其中存储多个svg元素信息。结构是 [0][0]->svg的html代码 [0][1]->父容器的id 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 =
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所拥有的并不是这样的。只是嵌套成员恰好也是长度相等的数组。矩形结构没有自动化或强制执行。你杀了我父亲。马尔沃里奥:是的,很抱歉。原来这只是一个很大的误会。我以为他吃了我的午餐,但后来我想起那天我没有带午餐。尴尬的。。。