Как получить Data-Attr в jQuery в плагине и превратить его в массив?

0

Я пытаюсь захватить атрибуты для определенных меток выделения так:

$('tagName').swapper();

Каждый раздел имеет вид data-image = "source", мне нужно захватить каждый из них и создать массив из него. Вот где я застрял, я могу получить каждый по отдельности, но не сразу, чтобы создать массив, ниже мой код для создания массива.

var imgArray = [];
        $this.each(function() {
            var count = getImgAttr.length;
            imgArray.push([getImgAttr]);
            console.log(imgArray);
            console.log(count);
        });

getImgAttr - это просто $ this.data("image");

Это возвращает каждый из них как отдельный массив, а не один.

Как я могу связать их все и предотвратить их разделение?

Спасибо, парни.

  • 0
    почему ты оборачиваешь это в [] ? вы должны определить getImgAttr для каждого изображения, которое вы перебираете, иначе оно будет когда-либо смотреть только на первое изображение.
  • 0
    Как я полностью уронил это? Я попробую, он был отформатирован с сайта jQuery API, поэтому я пытаюсь понять, как это сделать правильно. И я просто снял его, теперь он собирает правильную информацию. Теперь это вопрос слияния 3+, которые у меня есть.
Теги:
arrays
jquery-plugins

1 ответ

1
Лучший ответ

Вероятно, ваша проблема исходит отсюда:

var getImgAttr = $this.data("image");

это получает значение atttribute данных первого элемента в коллекции в пределах $ this. Вы должны делать это внутри области, где вы повторяете изображения. Кроме того, вы можете упростить код, пропустив каждый из них и перейдя в .map.

$.fn.swapper = function(){
    var imageArr = this.map(function(){
        return $(this).data("image");
    }).get();
    console.log(imgArr);
    return this;
}
  • 0
    Это сработало, спасибо! Он захватывает каждого из них в отдельности, теперь он просто повторно применяет и рандомизирует контент для каждого из них. Еще раз спасибо!

Ещё вопросы

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