Jquery largeur () par itération?
-
21-08-2019 - |
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?
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());
});
});