سؤال

أواجه بعض المشاكل في تكرار واسترجاع قيم width().

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

);

لذلك أود العثور على العرض لكل عنصر من عناصر "MyClass" (بعضها مختلف).

لكن الكود أعلاه ينتج فقط العرض () للمثيل الأول لـ MyClass ويعيد 0 بعد ذلك.

هل لديك أي أفكار حول القدرة على الحصول على عرض كل مثيل من MyClass؟

هل كانت مفيدة؟

المحلول

استخدم map بدلا من each لتبسيط التعليمات البرمجية:

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

نصائح أخرى

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

يجب أن تعمل على ما يرام.إذا أظهرت المزيد من التعليمات البرمجية، فقد أتمكن من معرفة الخطأ الذي يحدث.

تحديث:

متى تستخدم هذه الطريقة؟هل تنتظر حتى يصبح DOM جاهزًا أم تقوم فقط بتنفيذه على الفور؟إذا لم يكن الأمر كذلك، فقد لا يكون المتصفح قد انتهى من عرض كل هذه العناصر بعد.

جرب هذا إذا لم تكن بالفعل:

var widths = [];
$(document).ready(function() {
    $('.MyClass').each(function() {
        widths.push($(this).width());
    }); 
});
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top