我的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。 什么是我可能的错误以及如何纠正?
答案 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()