получить доступ к атрибуту src изображения с помощью jquery - PullRequest
0 голосов
/ 27 февраля 2012

Я следую этому примеру в:

http://bxslider.com/examples/perform-action-transition-callback

Но в этом примере я могу получить индексный номер из текущего изображения.

Iиметь этот код:

 $('#preview_images_gallery').bxSlider({
                                        onAfterSlide: function(totalSlides, currentSlide){
                                                                                            var src = $('currentSlide').attr('src');
                                                                                            $('.preview .bx-wrapper .bx-window').append('<p class="check">' + src);
                                                                                         }
                                      });

Как получить атрибут src текущего изображения?

Я пишу:

var src = $(currentSlide).attr('src');

но я не определился!

Спасибо!

Ответы [ 6 ]

5 голосов
/ 27 февраля 2012

Проверьте, что API

onBeforeSlide / onAfterSlide используют одну и ту же сигнатуру ниже, и вы можете получить доступ к объекту слайда в 3-м параметре.Вы можете получить подробную информацию о содержании слайдов из этого

function(currentSlideNumber, totalSlideQty, currentSlideHtmlObject){
  // perform actions here
}
1 голос
/ 27 февраля 2012

Это будет зависеть от вашей фактической разметки html, но при условии, что вы используете элемент li для создания слайда, тогда ниже нужно сделать хитрость (slider1 - контейнер ol / ul id)

$($('#slider1 li')[currentSlide - 1]).find('img').attr('src');

По сути, мы находим элемент slide (li), используя индекс (currentSlide - 1), а затем находим изображение внутри слайда, чтобы получить его атрибут источника. Теперь, если у вас есть несколько изображений на слайде, то выше может работать не так, как ожидалось.

1 голос
/ 27 февраля 2012

, чтобы получить атрибут любого элемента jquery, вы можете использовать это:

$('.selector').attr(attrName);

в вашем случае, что-то вроде этого ...

$('.slider1 .left').find('img').attr('src');

или даже больше длябалл:

jQuery('#slider1').find('li.pager:nth-child(currentSlide)').attr('src');

вам придется найти самый элегантный способ самостоятельно, но все ответы, предлагающие использовать .attr(attrName), верны, вам просто нужно найти правильный селектор элементов.

1 голос
/ 27 февраля 2012
var source = $('img').attr('src');

Не проверено и не очень эффективно, но что-то вроде этого может сработать, может потребоваться некоторая настройка.

var images = [], source="";
$('#slider1').bxSlider({
    pager: true,
    onBeforeSlide: function(currentSlide, totalSlides){
       $('img', this).each(function() {
           images.push(this);
       });
       source = $(images[currentSlide]).attr('src');
    }
});
alert(source);

Если макросы верны, это будет:

$('#slider1').bxSlider({
        pager: true,
        onBeforeSlide: function(currentSlide, totalSlides, SlideObject){
            source = SlideObject.attr('src');
        }
    });
    alert(source);
0 голосов
/ 27 февраля 2012

Как насчет

$('#sliderContainer').children().eq(currentSlide).find('img').attr('src')

В связанном примере это будет

$('#slider1').children().eq(currentSlide).find('img').attr('src')
0 голосов
/ 27 февраля 2012

Попробуйте это может помочь вам

document.getElementById("currentSlide_id").src;



var src= $('currentSlide_id').attr('src')
...