2012-06-06 14 views
9

Zdaję sobie sprawę, że w większości przypadków CSS to najlepszy sposób na uzyskanie nawet elementów wysokości. Jednak w pewnych sytuacjach, gdy mamy do czynienia ze stroną lub systemem CMS, nie mamy pełnej kontroli, myślę, że rozwiązanie jQuery byłoby bardzo przydatne.Użyj jQuery, aby uzyskać największą wartość wysokości dla dzieci, a następnie zastosuj tę wartość wysokości dla wszystkich dzieci.

Zastanawiam się, w jaki sposób osiągnąć następujące w jQuery. Nie jestem obeznany ze składnią jQuery, ale tutaj jest moja rozwodniona pseudo jQuery/angielska składnia ... Czy to ma sens, czy jest prostszy sposób na osiągnięcie tego? Zdaję sobie sprawę, poniższy kod nie działa w najmniejszym stopniu, to jest po prostu mój sposób próbuje przyczynić się do rozwiązania problemu, a pitch w trochę w dziale logicznych:

$('div.columns')each.get.height; 
create an array of the height values 
grab the largest value in this array 
$('div.columns')each.css(height: $max-height); 

Po przestać się śmiać na mój pseudo-kodzie , jakieś pomysły? Dzięki!

Odpowiedz

21

spróbować czegoś takiego:

var maxHeight = -1; 
$('div.columns').each(function() { 
    if ($(this).height() > maxHeight) { 
     maxHeight = $(this).height(); 
    } 
}); 
$('div.columns').height(maxHeight); 

Uwaga: Jest to kod niesprawdzone. Ale powinna mieć dla ciebie podstawową koncepcję. Twoja oryginalna koncepcja była blisko, ale tablica nie jest tu potrzebna, jeśli chcesz zachować maksymalną wartość wysokości.

+0

To działa idealnie! Dziękuję bardzo za wskazówki! – LearnWebCode

+1

@Eric Wiem, że jest trochę za późno, ale naprawdę chcę podziękować za to podejście. W tym celu korzystałem z tablic. Mam tylko pytanie, co robi maxHeight = -1? Jeśli usunę "-1", kod nie będzie działać. Więc możesz mnie z tym prowadzić? Dziękuję Ci. –

+2

@Symbolwdd Cieszę się, że pomogło! Wartość -1 podaje początkową wartość całkowitą dla porównania. Bez tego użyłoby 'undefined', którego nie można właściwie porównać do liczby całkowitej. – Eric

Powiązane problemy