اذهب إلى المحتوى

السؤال

نشر

ما هو السبب فى أن عداد التكرار لا يعمل ؟

 

(function mainFunc(){
    var i,
    myMain = document.getElementById("main");
    function changeColor(color) {
         color= ["red","blue","black","yellow","white"];
        for(i = 0 ; i<color.length ; i=i+1)
            myMain.innerHTML=color[i] ;
        }
    
    return changeColor();
}());

 

Recommended Posts

  • 0
نشر
بتاريخ 4 دقائق مضت قال أحمد حبنكة:

المعذرة منك أخي عماد ولكن ما الذي لا يعمل فيه بالضبط فقد جربته عندي ولا يبدو أن هناك أي خطأ به ؟

انا اريد طبع جميع قيم المصفوفة ولكن هذا الكود لا يطبع الا القيمة الأخيرة فقط من المصفوفة .. وانا لا اعرف ما هو الخطأ الذى يمنع اكتمال عمل التكرار 

  • 0
نشر (معدل)

يمكنك أخي عماد أن تعرف السبب من الكود التالي:

(function mainFunc(){
    var i,c;
    
    function changeColor(color) {
        color= ["red","blue","black","yellow","white"];
        for(i = 0 ; i<color.length ; i=i+1)
            c=color[i] ;
        }
  		console.log(c);
	}
    
    return changeColor();
}());

هذا الكود سيطبع "white" فقط وذلك ﻷن قيمة c بعد أن تنتهي حلقة التكرار تساوي "white" وفي الكود الخاص بك ما هو داخل العنصر main سيكون "white".

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

لست متأكداً تماماً مما تريد ولكن لعلك تحصل على ما تريد إن استبدلت هذه التعليمة:

myMain.innerHTML=color[i] ;

بهذه:

myMain.innerHTML+=color[i] + " " ; // المسافة هي لفصل اﻷلوان المراد طباعتها، يمكنك اختيار ما تشاء للفصل بينها مثلاً <br />

 

تم التعديل في بواسطة أحمد حبنكة
  • 0
نشر
بتاريخ منذ ساعة مضت قال Emad Atef:

انا اريد طبع جميع قيم المصفوفة ولكن هذا الكود لا يطبع الا القيمة الأخيرة فقط من المصفوفة .. وانا لا اعرف ما هو الخطأ الذى يمنع اكتمال عمل التكرار 

أن تريد الطباعة في نفس الوسم لذلك يتم أخذ أخر شىء في  المصفوفة لكن لو كنت تريد طباعة جميع محتويات المصفوفة عليك إزالة innerHTML من  داخل الحلقة وإستخدمها في خارج الحلقة ولكن بعد أن تضع محتويات المصوفة في متغير نقوم  ب  innerHTML  وإدخال القيمة في الوسم 

(function mainFunc(){
 var i,
    myMain = document.getElementById("main");
	var sinr="";
    function changeColor(color) {
         color= ["red","blue","black","yellow","white"];
        for(i = 0 ; i<color.length ; i=i+1){
          sinr=+","+color[i]
        }
                  myMain.innerHTML=sinr ;

    
    return changeColor();
}());

 

  • 0
نشر
بتاريخ On 11/21/2020 at 10:10 قال Emad Atef:

انا اريد طبع جميع قيم المصفوفة ولكن هذا الكود لا يطبع الا القيمة الأخيرة فقط من المصفوفة .. وانا لا اعرف ما هو الخطأ الذى يمنع اكتمال عمل التكرار 

الكود المكتوب يقوم بالمرور على عناصر المصفوفة ويقوم بتعين myMain.innerHTML الى قيمة العنصر في المصفوفة 

اي انه في اول دورة للفور لوب يقوم بتعين myMain.innerHTML الى red وفي الدورة الثانية الى blue حتى يصل الى white في الدورة الاخيرة 

لتقوم بطبع جميع القيم يجب عليكاستبدال = الى =+ بحيث يقوم بالاضافة الى قيمة  myMain.innerHTML بدلا عن تبديلها كليا

[myMain.innerHTML+=color[i

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...