0

我正在尝试通过获取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']);

任何人都可以帮忙吗?

4

2 回答 2

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);
于 2010-11-30T14:30:17.583 回答
0

您可以使用地图功能:

$("img").map(function(i,e) { return $(e).attr('rel');})
于 2010-11-30T14:34:55.037 回答