2009-05-06 11 views
3

J'ai un couple de Divs avec class = 'CCC'. Je veux prendre tous ces divs dans un tableau en utilisant jQuery, puis faire une boucle dans le tableau. Comment le fairejQuery loop

+1

La documentation de jQuery est vraiment super et pas difficile à comprendre. http://docs.jquery.com/Main_Page – ullmark

Répondre

4
// get an array of the divs (will act like one anyway) 
var divs = $('div.CCC'); 

// do something for each div 
divs.each(function() { 
    // this refers to the current div as we loop through  
    doSomethingWith(this); 
}); 

// or call your method on the array 
LoopThroughDivs(divs); 

Sinon, ceux-ci pourraient être écrits comme une seule instruction (si vous voulez seulement faire un d'entre eux):

$('div.CCC').each(function() { 
    // this refers to the current div as we loop through  
    doSomethingWith(this); 
}); 

LoopThroughDivs($('div.CCC')); 
+0

Une idée de comment inverser la boucle en utilisant votre code .. comme ramasser la dernière div.ccc en premier? – Hitz

+0

$ ('div.CCC'). Reverse() Je pense –

+0

Apparaît que ce n'est pas dans le noyau mais il y a beaucoup de plugins qui le font comme http://lab.arc90.com/2008/05/jquery_reverse_order_plugin.php –

7

Avec la fonction each():

$(".CCC").each(function(i){ 
    alert(this.id + " is the " + i + "th div with this class"); 
}); 

http://docs.jquery.com/Each

modifier:

comme l'a demandé:

function LoopTroughDivs(selector){ 
    $(selector).each(function(i){ 
    alert(this.id + " is the " + i + "th div with this class"); 
}); 
} 
+0

Comme je l'ai dit, je veux d'abord le prendre dans un tableau. Je passerai ensuite ce tableau à une fonction appelée LoopThroughDivss comme ceci: Loopthroughdivss (divsarray); S'il vous plaît dites-moi la solution pour ce – Hitz

+0

bien que ce n'était pas si clair dans votre question .. ma solution peut facilement être utilisée dans une fonction qui passe un paramètre avec le sélecteur jquery. Je vais éditer ma réponse –

+0

Merci pour la solution – Hitz

1

ressemble à ceci:

LoopThroughDivs($('.CCC')); 

Sérieusement, c'est tout ce qu'il y a. Vous pouvez utiliser la liste jQuery en tant que tableau.

-1

Si vous voulez mettre dans un tableau:

var divArray = new Array(); 
$('.CCC').each(function() { divArray.push(this); }); //add each div to array 
//loop over array 
for(i=0, x=divArray.length, i<x, i++){ 
    //divArray[i] refers to dom object, so you need to use a jquery wrapper 
    //for the jquery functions: 
    $(divArray[i]).animate('height', '100px').html("I'm div the "+i+'th div'); 
} 

Notez cependant que l'objet jQuery lui-même est un tableau de sorte que vous pouvez également faire:

for(i=0, x=$('.CCC').length, i<x, i++){ 
    $('.CCC')[i].animate('height', '100px').html("I'm div the "+i+'th div'); 
} 
+0

pourquoi était-ce downvoted? il fait comme le PO demande. –

+0

Pourquoi utiliser un camion de 200 pieds pour transporter une balle? – balexandre

-1

boucle chaque élément et de le mettre dans votre tableau.

var yourArray = new Array(); 
$(".CCC").each(function(index, element){ 
    yourArray[i]=element; 
}); 

Loopthroughdivss(yourArray); 
Questions connexes