jQuery создает многомерный массив из нескольких элементов

0

Как я могу создать многомерный массив со структурой, подобной этой, для каждого li с классом sl-item:

$imagesList = [
   [1, 123, "<img src=\"/img-src/123.jpg \" />", "/photo/img-123", "image-alt "],
   [2, 452, "<img src=\"/img-src/452.jpg \" />", "/photo/img-452", "image-alt "],
];

Сначала должно быть просто число массивов, 1,2,3..., вторая часть - это id элемента li, третий - img с img src, четвертый - URL-адрес от a с photo-url класса, а пятый - img alt. Моя структура такова:

<ul class="sl-img">
    <li id="123" class="sl-item">
        <a  class="photo-url" href="/photo/img-123">
            <img alt="image-alt" src="/img-src/123.jpg" >
        </a>
    </li>
    <li id="452" class="sl-item">
        <a  class="photo-url" href="/photo/img-452">
            <img alt="image-alt" src="/img-src/452.jpg" >
        </a>
    </li>
    .....
</ul>
  • 0
    Зачем вам нужен номер в массиве? разве это не охватывается индексом в массиве?
  • 0
    да, это покрыто индексом, вы правы, это может быть опущено.
Теги:
arrays
multidimensional-array

1 ответ

1

Что-то вроде этого возможно?

var result = [];

$('li').each(function(i){
    var $img = $(this).find('img');
    result.push([i+1, this.id, $img[0], $img.prop('src'), $img.prop('alt')]);
});

console.log(result);

Сначала я попытался использовать map(), но, похоже, он сгладил массив.

http://jsfiddle.net/EX6Dt/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню