js全局变量赋值问题
var slideimages=new Array();
function getPhotos(){
JPhoto.getPhoto(callBackImages);
}
function callBackImages(images){
for(var i=0;i<images.length;i++){
slideimages[i]="images/photo/"+images[i].photoSrc;
alert(slideimages[i]); //函数里有值
}
}
alert(slideimages[0]); //函数外面就没值了
怎么解决让全局数组一直有值
------解决方案--------------------<script type="text/javascript">
var list = new Array();
function test(){
alert("03");
list.push("111");
alert("04");
list.push("222");
}
function test222(){
alert("01");
test();
alert("02");
alert(list[0]);
alert(list[1]);
}
</script>
在JS中List使用还是比较麻烦的, 别用 list[i]=="**"赋值,用函数push();上面test()给全局list赋值,这样在其他地方就可以获取,当然取之前需要调一下test()...基本思路就是这样,另外你上面的第二个alert(slideimages[0]); //函数外面就没值了 这个地方应该写在function 中,要不怎么调?
给你个网址,里面讲JS操作List听详细的:
http://www.cnblogs.com/qiantuwuliang/archive/2011/01/08/1930499.html
我也是菜鸟,一起努力!!!!
------解决方案--------------------那是因为你是在函数callBackImages里面对数组进行赋值操作的,而外面的alert执行时,callBackImages并未被调用,此时当然取不到任何值了。
给你小改了下,只是为了说明下问题,无任何实用性
JScript code
<div id="imageContainer">
<img src="0.jpg" alt="image" />
<img src="1.jpg" alt="image" />
<img src="2.jpg" alt="image" />
</div>
<script>
var slideimages=new Array(),
images = document.getElementsByTagName("img");
function callBackImages(images){
for(var i=0;i<images.length;i++){
slideimages[i]="images/photo/"+images[i].src;
alert(slideimages[i]); //函数里有值
}
}
callBackImages(images);
alert(slideimages[0]); //函数外面就没值了
</script>