larghezza Jquery () attraverso iterazione?
-
21-08-2019 - |
Domanda
Sto avendo un po 'di problemi iterazione e recuperare la larghezza () valori.
$(".MyClass").each(
function(){
elemWidth=$(this).width();
}
);
così per ogni elemento "MyClass" vorrei trovare la larghezza (alcuni sono diversi).
Ma il codice precedente produce solo la larghezza () della prima istanza di MyClass e restituisce 0 del dopo.
Tutte le idee su di essere in grado di ottenere la larghezza di ogni istanza di MyClass?
Soluzione
Utilizzare map
invece di each
per semplificare il codice:
$('.MyClass').map( function() {
return $(this).width();
});
Altri suggerimenti
var widths = [];
$('.MyClass').each(function() {
widths.push($(this).width());
});
dovrebbe funzionare bene. Se hai mostrato un po 'più di codice potrei essere in grado di capire che cosa sta andando male.
Aggiornamento:
Quando si esegue questo metodo? Stai aspettando fino a quando il DOM è pronto, o semplicemente eseguendo immediatamente? In caso contrario, il browser non può essere fatto rendendo tutti questi elementi ancora.
Prova questo se non si è già:
var widths = [];
$(document).ready(function() {
$('.MyClass').each(function() {
widths.push($(this).width());
});
});