jQuery数组问题

时间:2010-11-30 14:26:36

标签: jquery arrays image image-gallery

我正在尝试通过获取rel属性中的每个图像链接来创建要预加载的数组图像。

我在页面上:

<div id="gallery_thumbs">
  <a><img src="images/image-1-thumb.jpg" rel="images/image-1.jpg" /></a>
  <a><img src="images/image-2-thumb.jpg" rel="images/image-2.jpg" /></a>
  <a><img src="images/image-3-thumb.jpg" rel="images/image-3.jpg" /></a>
  <a><img src="images/image-4-thumb.jpg" rel="images/image-4.jpg" /></a>
</div>

当页面加载时,我需要获取rel中的所有#gallery_thumbs a img属性,并将这些属性附加到这样的数组中:

preload([ 'images/image-1.jpg', 'images/image-2.jpg', 'images/image-3.jpg', 'images/image-4.jpg']);

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

您可以使用.map()获取所需的字符串数组,如下所示:

var arr = $("#gallery_thumbs img").map(function() { 
            return $(this).attr("rel"); 
          }).get();
preload(arr);

<a>没有名称或href无效,为什么不让href转到您想要的图像(这会优雅地降级),并阻止JavaScript中的操作?你的标记看起来像这样:

<div id="gallery_thumbs">
  <a href="images/image-1.jpg"><img src="images/image-1-thumb.jpg" /></a>
  <a href="images/image-2.jpg"><img src="images/image-2-thumb.jpg" /></a>
  <a href="images/image-3.jpg"><img src="images/image-3-thumb.jpg" /></a>
  <a href="images/image-4.jpg"><img src="images/image-4-thumb.jpg" /></a>
</div>

使上述脚本更简单:

var arr = $("#gallery_thumbs a").map(function() { return this.href; }).get();
preload(arr);

答案 1 :(得分:0)

您可以使用地图功能:

$("img").map(function(i,e) { return $(e).attr('rel');})