[英]Using variable inside array.push() in jquery
我的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在控制台中未定义。 我可能出现的错误是什么?如何纠正?
jQuery为此任务提供了有用的方法,称为$.fn.map
:
var images = $('#imageHolder div').map(function() {
return $(this).attr('alt');
}).get();
将产生图像的alt属性数组。
您有错字:
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++)
i
是一个变量,所以需要使用串联
$('#imageHolder div:eq('+ i + ')').attr('alt')
一种更有效的方法是使用.map(),在这种情况下,您要对选择器进行多次评估,这不是最佳方法
var images = $('#imageHolder div').map(function () {
return $(this).attr('alt')
}).get()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.