Как получить все дочерние элементы в html, используя расширение jQuery eq ()?

0

Я не очень хорошо разбираюсь в jQuery, и я работал над проектом и застревал в проблеме jQuery. У меня есть слайдер, и его структура html выглядит так:

<a class="slides" href="http://pvhorses.net/jersey/about-us/"><img src="http://pvhorses.net/jersey/wp-content/uploads/2013/08/front-pic-slide.jpg" alt="" class="change"></a>

и это jQuery:

jQuery(function(){ 

//init js styles 
jQuery('body').addClass('hasJS'); 

// homepage cycles 
jQuery('#feature_gallery .bigimg').wrapAll('<div class="bigimgs">').parents('#feature_gallery').append('<ul class="menu" id="feature_gallery_pager">').cycle({ 
    fx:'fade', 
    easing: 'swing', 
    inDelay:    250, 
    drop:       40, 
    timeout:    5000, 
    pause:      true,
    slideExpr: '.bigimg',
    before:onBefore,
    pager:      '#feature_gallery_pager', 
    pagerAnchorBuilder: function(idx, slide) {
    var img = jQuery(".slides").children().eq(0).attr("src");
    return '<li><a href="#"><img src="'+img+'" class="thumb"><span></span></a></li>';  

    } 

});

Теперь я пытаюсь получить атрибут "src" из привязки (a) с классом слайдов, и я получаю его в значительной степени, но проблема в том, что я получаю только первый элемент. Я хочу получить attr "src" из всех дочерних элементов.

КАК Я МОГУ ДОСТУПИТЬ?

Пожалуйста, помогите мне и ответьте мне, как только сможете.

Спасибо,

Усман Али Куреши

Теги:
children

2 ответа

1

Вам нужно будет сопоставить элементы и вернуть исходный атрибут.
Затем вы можете присоединиться к массиву в разделенный запятой список или что вам нужно?

var img = jQuery.map( jQuery(".slides img"), function(_,slide) {
    return slide.src;
}).join(', ');

Я предполагаю, что вы ищете нечто подобное:

var img = "";

jQuery(".slides img").each(function(_, slide) {
    img += '<li><a href="#"><img src="'+slide.src+'" class="thumb"><span></span></a></li>';
});

return img;
  • 0
    Это не сработало :(
0

вы можете получить все источники в переменной массива

var sources = new Array();
$("a.slides > img").each(function(index, value){
    sources.push($(value).attr("src"));
});

DEMO

ОБНОВЛЕНО

получение изображения галереи src:

var sourcesBig = new Array();
$("#slider .bigimgs  img").each(function (index, value) {
    sourcesBig.push($(this).attr("src"));
});

получение небольших фотографий, от карусели:

var sourcesSmall = new Array();
$(".jcarousel-container  img").each(function (index, value) {
    sourcesSmall.push($(this).attr("src"));
});

DEMO

  • 0
    $ (значение) неверно. Замените его на $ (это)
  • 0
    когда я попробовал ваш код с $ (value) и $ (this), даже весь слайдер пропал.
Показать ещё 2 комментария

Ещё вопросы

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