我正在尝试通过获取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']);
有人可以帮忙吗?
答案 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');})