您提供的代码是完全有效的,并且实际上
icon可以 “保持”其价值。问题可能是
get()异步运行的-仅 在
'data.xml'从服务器完全加载后才调用匿名函数。因此,现实世界中的执行顺序如下所示:
- 调用
get('data.xml', function(xml){...})
(开始加载data.xml) - 通话
console.log(icon)
(icon
目前仍为null) - (data.xml中完成载入) 现在 匿名函数被调用时,其分配值给图标:
icon = xml.documentElement.getElementsByTagName("icon")
。
如果你想要做一些事情的价值
icon, 之后 的“data.xml中”已被提取,那么你需要做的是 内部 匿名回调函数。像这样:
var icon; $(function(){ $.get('data.xml', function(xml){ icon = xml.documentElement.getElementsByTagName("icon"); console.log(icon); });});
祝好运!
注意:您仍然可以使用
icon从代码, 外面 的匿名功能,但你需要等待来访问它,直到 后
匿名函数已经运行。最好的方法是将相关代码放入其自己的函数中,然后从回调函数中调用该函数:
var icon; $(function(){ $.get('data.xml', function(xml){ icon = xml.documentElement.getElementsByTagName("icon"); loadIcon(); }); function loadIcon() { console.log(icon); // ... do whatever you need to do with icon here }});
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)