Question

Je vais avoir un peu de difficulté à l'itération et la récupération de valeurs de largeur ().

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

);

pour chaque élément « MyClass » Je voudrais trouver la largeur (certains sont différents).

Mais le code ci-dessus ne produit que la largeur () de la première instance de MyClass et retourne des 0 après.

Toutes les idées sur la possibilité d'obtenir la largeur de chaque instance de MyClass?

Était-ce utile?

La solution

Utilisez au lieu de map pour simplifier votre each code:

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

Autres conseils

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

Si le travail très bien. Si vous montriez un peu plus de code que je pourrais être en mesure de comprendre ce qui ne va pas.

Mise à jour:

Lorsque vous utilisez cette méthode? Attendez-vous jusqu'à ce que le DOM est prêt, ou tout simplement l'exécuter immédiatement? Dans le cas contraire, le navigateur ne peut pas être fait rendu tous ces éléments encore.

Essayez si vous n'êtes pas déjà:

var widths = [];
$(document).ready(function() {
    $('.MyClass').each(function() {
        widths.push($(this).width());
    }); 
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top