var widths = [];
$('.MyClass').each(function() {
widths.push($(this).width());
});
Должно работать нормально. Если бы вы показали немного больше кода, я мог бы выяснить, что происходит не так.
Обновление:
Когда вы используете этот метод? Вы ждете, пока DOM не будет готов, или просто выполните его немедленно? Если нет, то браузер может не завершить рендеринг всех этих элементов.
Попробуйте, если вы еще этого не сделали:
var widths = [];
$(document).ready(function() {
$('.MyClass').each(function() {
widths.push($(this).width());
});
});