【发布时间】:2015-01-22 00:25:10
【问题描述】:
我有许多li,每个都包含<img>标签。
<li class="pic"><img src="pic_1.jpg"></li>
<li class="pic"><img src="pic_2.jpg"></li>
<li class="pic"><img src="pic_3.jpg"></li>
<li class="pic"><img src="pic_4.jpg"></li>
一个简单的循环遍历列表项可以找到所有图像的原生宽度——是的,我知道 jQuery .each 函数也可以做到这一点。用于查找本机宽度(和高度)的代码应归功于 CSS Tricks。
picarray = [];
for (var i = 0; i < $('.pic').length; i++) {
var theimg = new Image();
theimg.src = $('.pic img').eq(i).attr('src');
var picW = theimg.width;
picarray = [picW];
console.log(picW);
console.log(picarray);
};
console.log(picarray[3]);
我想做的是获取迭代数据并将其转储到一个数组中,然后我可以在 for 循环之外访问该数组。我想我已经在 js 的顶部创建了一个全局变量 picarray 来执行此操作,但是当我测试代码时,数组在循环中会很好,但是当我测试并尝试访问特定项目时数组,在循环之外我只是在控制台面板中得到undefined。
如何将 for 循环吐出的迭代数据放入可以从循环外部访问的数组?
【问题讨论】: