2010-07-16 14 views
5

Creo que esta es una pregunta muy fácil para alguien que tiene más experiencia en Jquery.jquery. cómo obtener la altura de cada hermano?

por ejemplo tenemos página HTML sencilla con algunos divs, y 3 de ellos tienen la misma clase css 'barra lateral'

Cada uno de estos divs llamado lateral tienen un contenido diferente y diferente altura.

Necesito comparar esta altura de divs y encontrar la más larga.

sé cómo llevar a cabo la comparación, pero no saben cómo en Jquery puedo tomar cada una de esta DIVS

para almacenar su valor en vairable o matriz.

+0

¿Está especificando altura de la div de barra lateral o clase que se da explícitamente? – JPReddy

+0

no, no lo especifico en clase. – Ahmed

Respuesta

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

gracias! aprendiendo jquery, pero a veces es difícil hacer cosas simples, porque no conozco todos los eventos y operadores. – Ahmed

+0

De nada. En caso de duda, utilice la documentación de jQuery: http://api.jquery.com/ – Calvin

+0

¿Qué pasa con el uso de 'jQuery.each' sobre el antiguo simple' .each() '? Ver mi respuesta para enlaces a los dos. –

0

Cuando tenía que hacer lo mismo, este es el código que utilicé:

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

no estoy seguro de por qué las dos respuestas publicadas hasta ahora están utilizando jQuery.each() en lugar de simplemente llamando each() directamente, por lo que aquí es lo que yo recomendaría:

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

para poner a cada altura en una matriz:

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

O bien, sólo tiene que utilizar map():

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

Estaba intentando '$ (this) .siblings.each (function() ...' y no pasaba nada. Duhh ... ahora que vi tu código me di cuenta de que me faltaban los paréntesis. Hermanos() Esto es obvio ya que es una función. Perdió 15 minutos depurando esto. :) –

Cuestiones relacionadas