largura jquery () através iteração?
-
21-08-2019 - |
Pergunta
Eu estou tendo um pouco de iteração problemas e recuperar largura () valores.
$(".MyClass").each(
function(){
elemWidth=$(this).width();
}
);
então para cada elemento "MyClass" Eu gostaria de encontrar a largura (alguns são diferentes).
Mas o código acima produz apenas a largura () da primeira instância de MyClass e retorna 0 para depois disso.
Todas as ideias sobre a possibilidade de obter a largura de cada instância de MyClass?
Solução
Use map
vez de each
para simplificar o seu código:
$('.MyClass').map( function() {
return $(this).width();
});
Outras dicas
var widths = [];
$('.MyClass').each(function() {
widths.push($(this).width());
});
deve funcionar muito bem. Se você mostrou um pouco mais código que eu poderia ser capaz de descobrir o que está acontecendo de errado.
Update:
Quando você está correndo este método? Você está esperando até que o DOM está pronto, ou apenas executá-lo imediatamente? Se não, o navegador não pode ser feito tornando todos esses elementos ainda.
Tente isto se você ainda não estiver:
var widths = [];
$(document).ready(function() {
$('.MyClass').each(function() {
widths.push($(this).width());
});
});