为什么枚举一个对象会给出一个未定义的?

时间:2013-03-26 16:10:16

标签: jquery jstree

当试图枚举数据对象的值时,它为其所有属性提供undefined值,但是获取没有枚举的值会给出字符串数据的值(工作)......

创建jstree节点,没有任何问题......

 $("#treeFile1").jstree("create", null, "outside", { "attr" : { "rel" : "folder" }});

听取上面的事件

 $("#treeFile1").bind("create.jstree", function(event,data)
 {      
alert(data.args.toSource()); // gives a string output not defined
    alert(data.inst.toSource());

for(var prop in data)
{
     alert("Property name is: "+ prop + "  property value is: "+  data.prop);
         // gives each value as undefined, why is this?
}
     event.stopImmediatePropagation();

1 个答案:

答案 0 :(得分:4)

因为您需要使用bracket notation代替dot notation来使用prop作为访问的媒体资源名称:

alert("Property name is: "+ prop + "  property value is: "+  data[prop]);

MDN的文档提供了a solid for...in example