2010-10-24 3 views
2

Ceci est mon code.Choisissez la plus grande hauteur de tous les éléments

v=dom.find("ul:first").outerHeight(); // the height of the first li element 
      // instead of taking the height of the first li element, it should loop through all 
      // li elements and set v to the element with the biggest height 

Le commentaire au milieu du code explique à peu près tout. Je dois boucler tous les éléments li et prendre la plus grande hauteur, au lieu de prendre la hauteur du premier élément.

Répondre

3
var v = 0; 
// ... 
dom.find('ul:first').children('li').each(function() { 
    var height = $(this).outerHeight(); 
    v = height > v ? height : v; 
}); 
+0

Merci. Cela fonctionne très bien. – Peter

+0

Bonne réponse, le code est assez propre avec l'opérateur conditionnel – kobe

+0

Quelqu'un pourrait-il élaborer sur la partie de l'opérateur conditionnel? C'est assez propre, mais je ne peux pas encore le comprendre. – MauF

1

Vous pouvez utiliser la méthode jquery .each() pour parcourir chaque élément et la méthode .height() pour déterminer la hauteur de l'élément. Pour déterminer la plus grande hauteur, déclarez une variable, maxheight = 0, et si la hauteur de l'élément est supérieure à maxheight, définissez la hauteur maxheight sur la hauteur de l'élément.

var maxheight = 0; 
$('ul').each(function(index) { 
    if($(this).outerHeight() > maxheight) maxheight = $(this).outerHeight(); 
}); 
0
var el, max = 0; 
$("ul").each(function(){ 
    var height = $(this).outerHeight(); 
    if (height > max) { 
    el = this; 
    max = height; 
    } 
}); 
0
var maxHeight = Math.apply(null, $('ul:first > li').map(function() { 
    return $(this).outerHeight(); 
})); 

Cela fonctionne aussi bien, juste sans le var supplémentaire.

Questions connexes