2016-03-10 2 views
1

Я пробовал читать api jQuery, но это касается только того, что я второй раз использовал jQuery, поэтому я немного потерял себя.Как перебрать элементы в div, используя .each?

У меня есть настройка div со списком изображений под ним.

<div id="slides"> 
    <img src="images/casting1.jpg" alt="Casting on the Upper Kings"> 
    <img src="images/casting2.jpg" alt="Casting on the Lower Kings"> 
    <img src="images/casting3.jpg" alt="Casting at another location!"> 
    <img src="images/catchrelease.jpg" alt="Catch and Release on the Big Horn"> 
    <img src="images/fish.jpg" alt="Catching on the South Fork"> 
    <img src="images/fish1.jpg" alt="Catching on the North Fork"> 
    <img src="images/lures.jpg" alt="The Lures for Catching"> 
</div> 

Так что я выбрал первый DIV с помощью:

var slides = $("#slides"); 

Но оттуда я понятия не имею, в каком направлении к голове в разделе Как выбрать отдельные элементы внутри от дел.? Любая помощь или руководство очень ценится!

+0

'$ (» #slides "). find ('img'). each (function() {... do smth с $ (this) ...});' –

+0

'slides.find (" img "). each (function (индекс, элемент) {/ * whatever * /}) ' –

ответ

2

Вы можете использовать find или contextSelector, чтобы получить детей.

var $slides = $("#slides"); 

var allImages = $slides.find('img'); or // $('img', $slides) 

Если вы хотите перебрать изображения, а затем просто использовать each цикл для целевого каждого изображения конкретно.

Если вы хотите выбрать определенное изображение.

$('img', $slides).eq(1) // Will get you the second image in the div. 
0
$('#slides img').each(function(){ 
//code required using $(this).... to target each particular image of that iteration 
}) 
0

У вас есть 2 варианта, .find() или .children() и .children('img') такое же, как .find('> img')

var slides = $("#slides"); 

slides.children('img').each(function (idx, elem) { 
    console.info(idx, elem); 
}); 
+2

согласно документации jquery, каждая обратная связь обратного вызова выглядит так: Function (Integer index, Элемент element) –

+0

Несколько более двух на самом деле ....' $ ('# slides img ') ',' $ (' # slides> ') ', и, по крайней мере, еще несколько будут работать (хотя, возможно, менее эффективны) ....;) – DelightedD0D

0

как этот

slides.find("img").each(function(index, element){ 
    //keep in mind, element is a HTMLElement 
    //not a JqueryObject, in order to manipulate 
    //it with jquery use: $(element) 
}) 
0

Дайте этому выстрел ...

var slides = $("#slides > img").each(function() {}); 

console.log(slides); 

Это регистрирует массив всех img элементов

0

Вы можете перебирать каждый <img> с помощью $("#slides img").each

$("#slides img").each(function(){ 
    // do something 
}); 
+0

извините Маниш - уже отправил этот ... .. приятное дополнение имени класса tho – gavgrif

+0

Также вы можете использовать 'index', который является частью' each', вместо того, чтобы создавать переменную и увеличивать ее. –

+0

Никогда не было причин иметь такие дополнительные классы. Просто введите '$ ('. Class-name'). Eq (0);', '$ ('. Class-name'). Eq (1);' и т. Д. – DelightedD0D

0

Используя переменную, которую вы уже создали:

slides.children('img').each(function(){ 
    // here use this for the HTML element or $(this) for the jQuery wrapped one 
}); 
Смежные вопросы