在jquery中使用array.push()中的变量

时间:2015-03-26 08:58:11

标签: javascript jquery html css

我的jquery脚本中有一个for循环

var images[];
for(i=0;i<$('#imageHolder div').length;i++)
{
    images.push($('#imageHolder div:eq( i )').attr('alt'));
    console.log($('#imageHolder div:eq(i )').attr('alt'));
}

我无法将元素添加到数组中,并且console.log在控制台中显示为undefined。 什么是我可能的错误以及如何纠正?

3 个答案:

答案 0 :(得分:1)

jQuery为此任务提供了有用的方法,称为$.fn.map

var images = $('#imageHolder div').map(function() {
    return $(this).attr('alt');
}).get();

将生成一系列图像alt属性。

答案 1 :(得分:0)

你有一个错字:

images.push($('#imageHolder div:eq(' + i + ')').attr('alt')); 
                 you need to concat i ^^^^

顺便说一句,每次都不要在for

中选择您的元素
var divs = $('#imageHolder div');
for(i=0; i < divs.length; i++)

答案 2 :(得分:0)

i是变量,因此需要使用连接

$('#imageHolder div:eq('+  i + ')').attr('alt')

更有效的方法是使用.map(),在你的情况下,你多次评估选择器,这不是一种最佳方式

var images = $('#imageHolder div').map(function () {
    return $(this).attr('alt')
}).get()