Pregunta

Estoy teniendo un poco de problemas iterando y recuperación de anchura () valores.

$(".MyClass").each( 
function(){
    elemWidth=$(this).width();
}

);

así que para cada elemento "MyClass" i gustaría encontrar la anchura (algunos son diferentes).

Pero el código de seguridad sólo produce la anchura () de la primera instancia de MyClass y devuelve 0 de después de eso.

¿Alguna idea de ser capaz de obtener el ancho de cada instancia de MyClass?

¿Fue útil?

Solución

Utilice map en lugar de each a simplificar el código:

$('.MyClass').map( function() {
    return $(this).width();
});

Otros consejos

var widths = [];
$('.MyClass').each(function() {
    widths.push($(this).width());
}); 

debería funcionar bien. Si usted mostró un poco más de código que podría ser capaz de averiguar lo que está mal.

Actualización:

Cuando usted está funcionando con este método? ¿Está esperando hasta que el DOM está listo, o simplemente ejecutar inmediatamente? Si no es así, el navegador no puede realizarse haciendo todos esos elementos todavía.

Probar si no está ya:

var widths = [];
$(document).ready(function() {
    $('.MyClass').each(function() {
        widths.push($(this).width());
    }); 
});
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top