Asma'a نشر 30 نوفمبر 2020 أرسل تقرير نشر 30 نوفمبر 2020 <!DOCTYPE html> <html> <head> <script> window.onload = function () { document.getElementById("test").innerHTML = "asma";} </script> </head> <body> <div class="test">C</div> </body> </html> لماذا لاتعمل الدالة وأنا أستخدمت window.onload اقتباس
0 Yomna Raouf نشر 30 نوفمبر 2020 أرسل تقرير نشر 30 نوفمبر 2020 مرحبًا أسماء. لاحظي أنك قمت بتحديد الحاوية باستخدام التابع getElementById بالرغم من أن test تعتبر صنفًا class و ليس مُعرفًا id. <div class="test">C</div> فقط قومي بتعديل class إلى id و سيعمل بشكل صحيح: <!DOCTYPE html> <html> <head> <script> window.onload = function () { document.getElementById("test").innerHTML = "asma";} </script> </head> <body> <div id="test">C</div> </body> </html> 1 اقتباس
0 سمير عبود نشر 30 نوفمبر 2020 أرسل تقرير نشر 30 نوفمبر 2020 مرحباً بك، بتاريخ 3 دقائق مضت قال أسماء عبدالله محمود النظاري: لماذا لاتعمل الدالة وأنا أستخدمت window.onload لم يتغير شيء لأنه لا يوجد في المستند أي عُنصر يحمل المُعرف test حتى يتغير النص الموجود داخل الdiv يجب إضافة الid المطلوب كما هو موضح أدناه: <div class="test" id="test">C</div> أو بإمكانك تغيير طريقة تحديد العُنصر عن طريق إسم الصنف: window.onload = function () { document.getElementsByClassName("test")[0].innerHTML = "asma"; } التابع getElementsByClassName يأخذ كمعامل إسم الصنف و يُرجع مصفوفة تضم كل العناصر التي تملك صنف التنسيقات المطلوب. هناك عدة توابع أخرى يُمكنك إستخدامها ك querySelector getElementsByTagName بالتوفيق. 1 اقتباس
0 Asma'a نشر 30 نوفمبر 2020 الكاتب أرسل تقرير نشر 30 نوفمبر 2020 /* jslint plus plus : true, evil:true*/ /*global console ,alert ,prompt*/ شكراً لك,لوسمحتي لماذا نستخدم هذا التعليق بداية البرنامج!!! بتاريخ 11 ساعات قال عبود سمير: مرحباً بك، لم يتغير شيء لأنه لا يوجد في المستند أي عُنصر يحمل المُعرف test حتى يتغير النص الموجود داخل الdiv يجب إضافة الid المطلوب كما هو موضح أدناه: <div class="test" id="test">C</div> أو بإمكانك تغيير طريقة تحديد العُنصر عن طريق إسم الصنف: window.onload = function () { document.getElementsByClassName("test")[0].innerHTML = "asma"; } التابع getElementsByClassName يأخذ كمعامل إسم الصنف و يُرجع مصفوفة تضم كل العناصر التي تملك صنف التنسيقات المطلوب. هناك عدة توابع أخرى يُمكنك إستخدامها ك querySelector getElementsByTagName بالتوفيق. في حال أردت إرجاع أكثر من عنصر كيف أحدد المصفوفة,أم أزيد فقط رقم هكذا [8] اقتباس
0 Yomna Raouf نشر 30 نوفمبر 2020 أرسل تقرير نشر 30 نوفمبر 2020 بتاريخ 9 ساعات قال أسماء عبدالله محمود النظاري: /* jslint plus plus : true, evil:true*/ /*global console ,alert ,prompt*/ شكراً لك,لوسمحتي لماذا نستخدم هذا التعليق بداية البرنامج!!! ليس من الضروري و ضع هذه التعليقات في بداية البرنامج. و السطر الأول متعلق بأدة تسمى jslint و هي أداة تستخدم لتنقيح الأكواد و التأكد من جودتها و أنها مكتوبة بطريقة صحيحة. إذا كان التعليقان موجودان بصورة افتراضية في محرر الأكواد الخاص بك فدعيهم كما هما، فربما يكون لهم ضرورة لمحرر الأكواد فقط لا أكثر بتاريخ 10 ساعات قال أسماء عبدالله محمود النظاري: في حال أردت إرجاع أكثر من عنصر كيف أحدد المصفوفة,أم أزيد فقط رقم هكذا [8] المصفوفة التي نحصل عليها من getElementsByClassName تحتوي جميع العناصر التي لها صنف معين test مثلًا، و هذه العناصر تكون مرتبة داخل المصفوفة حسب ترتيبها في الأكواد. <!DOCTYPE html> <html> <head> <script> window.onload = function () { document.getElementsByClassName("test")[0].innerHTML = "asma"; document.getElementsByClassName("test")[1].innerHTML = "asma1"; document.getElementsByClassName("test")[2].innerHTML = "asma2"; document.getElementsByClassName("test")[3].innerHTML = "asma3"; } </script> </head> <body> <div class="test">A</div> <div class="test">B</div> <div class="test">C</div> <div class="test">D</div> </body> </html> و يمكننا تحديد العنصر الذي نريده باستخدام ال index كما نفعل مع المصفوفات في JS بصورة طبيعية اقتباس
0 سمير عبود نشر 30 نوفمبر 2020 أرسل تقرير نشر 30 نوفمبر 2020 بتاريخ 11 دقائق مضت قال أسماء عبدالله محمود النظاري: /* jslint plus plus : true, evil:true*/ /*global console ,alert ,prompt*/ يتم إضافة هذه التعليقات لمُساعدة مُحرر الأكواد و عدم إعطاء تحذيرات متعلقة بهذه الأشياء على سبيل المثال لو كتبنا في برنامج Brackets: console.log('hello'); سيُعطي البرنامج الإنذار أو التحذير التالي: أي أنه لم يتعرف على console لكن الكود سيعمل في المتصفح بشكل جيد و سيطبع hello، لكن لتلافي هذا الإنذار يُمكن كتابة: window.console.log('hello'); و سيختفي الإنذار، أو يُمكننا إضافة التعليق التالي: /*global console*/ في بداية الملف. فكما تلاحظي هذه الأسطر فقط لمُساعدة المُحرر. بتاريخ 27 دقائق مضت قال أسماء عبدالله محمود النظاري: في حال أردت إرجاع أكثر من عنصر كيف أحدد المصفوفة,أم أزيد فقط رقم هكذا [8] هذا يعتمد على الحالة التي تواجهك و على الشيء الذي تريدين القيام به مثلا إذا كان لدينا: <div class="test">A</div> <div class="test">B</div> <div>C</div> <div class="test">D</div> <div class="test">E</div> و نريد تغيير النص لكل div يحمل الصنف test إلى "asma" سنقوم ب: window.onload = function () { document.querySelectorAll("div.test").forEach(elm => elm.innerText = "asma") } بالتوفيق. اقتباس
السؤال
Asma'a
لماذا لاتعمل الدالة وأنا أستخدمت window.onload
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.