访问数组

时间:2017-10-24 12:12:50

标签: javascript arrays raphael

我正在使用Raphaël框架绘制动态形状(这使得它们可以闪烁,你可以让它们发光......)。

我无法正确访问数组。

我创建了一个数组:

var siegeurs = { 

  1 : [{           
          "Nom" : "User1",
          "Photo" : "url"
            }],
  2 : [{
          "Nom" : "User2",
          "Photo" : "url"
            }],
  3 : [{     
          "Nom" : "User3",
          "Photo" : "url"
            }],
  4 : [{       
          "Nom" : "User4",
          "Photo" : "url"
            }],
  5 : [{        
          "Nom" : "User5",
          "Photo" : "url"
            }]
};

这些是框架绘制的形状:

sieges["1"] = assembly.path("M236.51 ... 108");
sieges["2"] = assembly.path("M483.51 ... 71");
sieges["3"] = assembly.path("M427.51 ... 272");
sieges["4"] = assembly.path("M135.51 ... 348");
sieges["5"] = assembly.path("M617.51 ... 413");

它们就像是对象,因此您可以与它们进行交互。

这是循环:

for(var siegeNum in sieges) {
(function (siege) {
    siege.attr(style); //apply style to shapes

    siege[0].addEventListener("mouseover", function() {
        siege.animate(hoverStyle, animationSpeed); //add hoverstyle when hovered

        //The line I can't figure out
        document.getElementById("textelement").innerHTML = siegeurs[siegeNum]["Nom"]; 
        //The line I can't figure out


    }, true);

    siege[0].addEventListener("mouseout", function() {
      siege.animate(style, animationSpeed);
      document.getElementById("textelement").innerHTML = baseTxt;
    }, true);

})
(sieges[siegeNum]);
}

textelement是我尝试在形状悬停时修改的基本文本。 实际上,当我悬停形状时,文本会变为“未定义”。

我试着这样做只是为了检查:

document.getElementById("textelement").innerHTML = siegeurs[siegeNum];

但是当我悬停时,文本会转到[object Object]。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

siegeurs对象中的每个值都是一个数组,因此所需的内部属性"Nom"应该被访问为:

...
document.getElementById("textelement").innerHTML = siegeurs[siegeNum][0]["Nom"];