2010-11-30 70 views
0

我试图通过获取rel属性中的每个图像链接来预先创建数组图像。jQuery数组问题

我有一个页面上:

<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> 

页面加载时我需要把所有的#gallery_thumbs a imgrel属性和附加这些到一个数组,像这样:

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

任何人都可以帮帮我?

+0

进行格式化,只突出的代码段和点击顶部的'101010`按钮,它会将它分隔4个空格......并且减价会很好地为您格式化。点击上面的编辑,看看我调整它后格式的外观:) – 2010-11-30 14:40:55

回答

0

您可以使用地图功能:

$("img").map(function(i,e) { return $(e).attr('rel');}) 
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); 
+0

这将返回undefined在Firefox? – 2010-11-30 16:05:36

+0

@Chill - 第一个? `rel`是一个无效的属性,所以如果可能的话,我会*真的去。 – 2010-11-30 16:06:48