2010-07-16 4 views
5

Je pense que c'est une question très facile pour quelqu'un qui est plus expérimenté dans Jquery.jquery. comment obtenir la hauteur de chaque frère et soeur?

par exemple, nous avons simple page html avec quelques divs, et trois d'entre eux ont la même classe css barre latérale '

Chacun de ces divs « sidebar » ont un contenu différent et différentes hauteurs.

J'ai besoin de comparer cette hauteur divs et de trouver la plus longue.

Je sais comment réaliser la comparaison, mais je ne sais pas comment en Jquery je peux prendre chacun ce divs

pour stocker leur valeur dans vairable ou un tableau.

+0

Vous spécifiez la hauteur de la div dans la classe de la barre latérale ou est explicitement donnée? – JPReddy

+0

non, je ne le spécifie pas en classe. – Ahmed

Répondre

4
$.each($('.sidebar'), function() { 
    var height = $(this).height(); 
}); 
+0

merci! apprendre jquery, mais parfois il est difficile de faire des choses simples, parce que je ne connais pas tous les événements et les opérateurs. – Ahmed

+0

De rien. En cas de doute, utilisez la documentation de jQuery: http://api.jquery.com/ – Calvin

+0

En quoi l'utilisation de 'jQuery.each' se fait-elle sur un ancien.' '' '' ''() '? Voir ma réponse pour les liens vers les deux. –

0

Quand je devais faire la même chose, c'est le code je:

var tabPanels = $("..."); 
    var maxHeight = 0; 

    $.each(tabPanels, function() { 
     var height = $(this).height(); 
     maxHeight = (height > maxHeight) ? height: maxHeight; 
    }); 

    $.each(tabPanels, function() { 
     $(this).css("height", maxHeight + "px"); 
    }); 
13

Je ne sais pas pourquoi les deux réponses affichées à ce jour utilisent jQuery.each() plutôt que d'appeler each() directement, alors voici ce que je recommande:

$('#elementID').siblings().each(function() 
{ 
    var height = $(this).height(); 
}); 

Pour mettre chaque hauteur dans un tableau:

var heights = []; 
$('#elementID').siblings().each(function() 
{ 
    heights.push($(this).height()); 
}); 

Ou, il suffit d'utiliser map():

var heights = $('#elementID').siblings().map(function() 
{ 
    return $(this).height(); 
}).get(); 
+1

J'essayais '$ (this) .siblings.each (function() ...' et rien ne se passait Duhhh ... maintenant que j'ai vu votre code, j'ai réalisé qu'il me manquait la parenthèse! Siblings() C'est évident puisque c'est une fonction, 15 minutes de débogage. –

Questions connexes