繁体   English   中英

在jQuery中使用array.push()内部的变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM