Javascript 不会在jQuery中迭代数组

Javascript 不会在jQuery中迭代数组,javascript,jquery,iterator,Javascript,Jquery,Iterator,因此,我可以将所有需要的图像放入一个数组中,并将它们传递给$image。但是,当我尝试循环该数组时,它只会不断地向同一个项目发出3次警报 我遇到麻烦的代码 getItem : function($image){ console.log($image) console.log(jQuery.type($image)) var setup ='<img src="' + $($image).attr('href') + '" title="' + $($im

因此,我可以将所有需要的图像放入一个数组中,并将它们传递给$image。但是,当我尝试循环该数组时,它只会不断地向同一个项目发出3次警报

我遇到麻烦的代码

   getItem : function($image){
    console.log($image)
    console.log(jQuery.type($image))
    var setup ='<img src="' + $($image).attr('href') + '" title="' +    $($image).attr('title') + '"/>';

    $.each($image, function(i){
        alert( setup);
    });

 } 
HTML

    <a href="images/slideshow/1-GW.PhillipBarnhart.ReverendMemory.jpg" title="Phillip Barnhart as: 
        Reverend Memory - a clergyman who stands for decorum and truth." rel="slideshow"><img src="images/view-slideshow.jpg" width="490" height="352" alt="View Slideshow"></a>
        <a rel="slideshow" href="images/slideshow/2-GW.BethBrooks.POLLYTODD.jpg">fff</a>
        <a rel="slideshow" href="images/slideshow/3-GW.NickHale.NOSTALGIA.jpg">test</a>
整个脚本或者如果您喜欢JSFIDLE,这里是一个链接

我假设$image是一个数组,因为您正在遍历它。如果是这样的话,你想要类似的东西

$.each($image, function(i){
    var setup ='<img src="' + i.attr('href') + '" title="' +  i.attr('title') + '"/>';
    alert( setup);
});
我假设$image是一个数组,因为您正在遍历它。如果是这样的话,你想要类似的东西

$.each($image, function(i){
    var setup ='<img src="' + i.attr('href') + '" title="' +  i.attr('title') + '"/>';
    alert( setup);
});

您使用的$。每个循环都是错误的

第一个问题是,如果$image是列表,那么$image.attrx将获取列表中第一个元素的attr。您需要的是$$image[i]或使用.get

第二个问题是在循环之外声明var设置。这意味着它声明和使用了一次,而不是3次,因为你有3个项目

$.each($image, function(i){
    var setup ='<img src="' + $(this).attr('href') + '" title="' +       
        $(this).attr('title') + '"/>';
    alert( setup);
});
使用$时,函数中的每个此对象将依次引用数组中的每个对象。在本例中,这是一个DOM对象,因此您希望使用$this来获取jQuery图像对象


在这里查看一个工作示例

您使用$。每个循环都是错误的

第一个问题是,如果$image是列表,那么$image.attrx将获取列表中第一个元素的attr。您需要的是$$image[i]或使用.get

第二个问题是在循环之外声明var设置。这意味着它声明和使用了一次,而不是3次,因为你有3个项目

$.each($image, function(i){
    var setup ='<img src="' + $(this).attr('href') + '" title="' +       
        $(this).attr('title') + '"/>';
    alert( setup);
});
使用$时,函数中的每个此对象将依次引用数组中的每个对象。在本例中,这是一个DOM对象,因此您希望使用$this来获取jQuery图像对象

查看这里的工作示例查看我的解决方案

允许无休止的幻灯片循环,在我看来,你已经把它复杂化了一点,并且像@Dutchie432所指出的那样,在概念上犯了一些错误

希望这也会有所帮助, Tom

查看我的解决方案

允许无休止的幻灯片循环,在我看来,你已经把它复杂化了一点,并且像@Dutchie432所指出的那样,在概念上犯了一些错误

希望这也会有所帮助,
汤姆

你可以用它完成你似乎想要的事情


你可以完成你似乎想要使用的东西

我认为您的var设置需要在$.each循环内声明。我认为您的var设置需要在$.each循环内声明。
getItem : function($image){
    $image.map( function(i,val){
        return $('<img>', { src:this.href, title:this.title })[0];
    }).appendTo(slideShow.config.wrapper);
},