JQuery Array проблема - PullRequest
       31

JQuery Array проблема

0 голосов
/ 30 ноября 2010

Я пытаюсь создать массив изображений для предварительной загрузки, получая каждую ссылку на изображение в атрибутах 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 ]

3 голосов
/ 30 ноября 2010

Вы можете использовать .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 голосов
/ 30 ноября 2010

Вы можете использовать функцию карты:

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