2011-05-26 19 views
6

Estoy completando una lista desordenada con contenido dinámico y la altura de la lista mostrará el contenido, ¿alguien sabe cómo puedo obtener el alto de las primeras 3 etiquetas li en la lista desordenada?jQuery obtener altura de las primeras 3 etiquetas li

El contenido dinámico producido podría ser algo así como lo siguiente, así que solo quiero poder calcular la altura de las primeras 3 etiquetas de li.

<ul> 
<li>23 Feb 2011<br />Synergy Launch new website...<br />Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc gravida lacus a ligula dictum dignissim....</li> 
<li>23 Feb 2011<br />Expat children "receive improv...<br />Expat children enjoy a better standard of education whilst living abroad compared to their home country according to the HSBC Offshore Offspring Report,...</li> 
<li>25 Feb 2011<br />London Market favours Landlord...<br />The lettings market has swung dramatically in favour of landlords as an average six applicants chase every available property in London. This is a dramatic rise...</li> 
<li>23 Feb 2011<br />Synergy Launch new website...<br />Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc gravida lacus a ligula dictum dignissim....</li> 
</ul> 

Gracias por cualquier ayuda J.

Respuesta

18

Esto le proporciona toda su altura ... pero podría simplemente poner el código que desea dentro de la función para realizar algo en cada elemento de la lista.

var sum = 0; 

$('li:lt(3)').each(function() { 
    sum += $(this).height(); 
}); 

http://jsfiddle.net/rnpAE/1/

EDIT: acortado $('li').nextUntil(':eq(2)') a $('li:lt(3)')

+0

Gracias, eso era exactamente lo que estaba buscando. – JBoom

4

Si desea calcular los utilizan de forma individual el selector eq

http://api.jquery.com/eq-selector/

var liHeight = $('li:eq(0)').outerHeight(); // Obtains height of first li 
+2

'eq()' está basado en cero, por lo que el código en su respuesta en realidad obtiene la altura del elemento de la lista * segundo *. –

+0

Buena captura. Mi error. Solucionado en edición. – Trevor

0
$('li').height(); // First 
$('li').next().height(); // Second 
$('li').next().next().height(); // Third 

o uso outerHeight si quieres para incluir relleno/margen.

1

Primero estableció un var a ser menos 1 punto ...

var liTotalHeight = -24; 

Entonces, para cada artículo, Añado la altura de la li ..

liTotalHeight = liTotalHeight + $(this).outerHeight(); 

Entonces puse scrollTop del ul ...

$(this).parent().scrollTop(liTotalHeight); 

Un poco hacky, pero funciona mejor para mí

Cuestiones relacionadas