نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر

نوفيل
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
دخولابدأ مجاناً
الرئيسيةالكورساتالتحديات⚔️ المبارزاتالمقالاتالأدواتتغريداتالمجتمع
JS

منهج JavaScript

دليل مرجعي شامل

كل اللغات
مدرسة البرمجة/منهج JavaScript/تعديل محتوى الخصائص والتصميم (Modifying Elements & Styles)

تعديل محتوى الخصائص والتصميم (Modifying Elements & Styles)

innerHTML textContentتعديل عناصر domclassList javascriptxss javascriptstyle javascript dom

جدول مرجعي سريع

1
الخاصية/الدالةالوظيفةملاحظة أمنية
textContentتعديل نص خام فقطآمن دائماً
innerHTMLتعديل محتوى HTML كاملخطر XSS مع مدخلات غير موثوقة
setAttribute()تعيين خاصية وسم—
classList.add/remove/toggleالتحكم في فئات CSSالطريقة الموصى بها للتصميم

الشرح

بعد تحديد عنصر من الصفحة، يمكن تعديل محتواه بعدة طرق. textContent تُعدّل النص الخام داخل العنصر فقط، بأمان تام دون تفسير أي وسوم HTML بداخله — الخيار الأكثر أماناً عندما تتعامل مع نص مُدخل من المستخدم. innerHTML تُعدّل المحتوى الداخلي وتُفسّره كـ HTML فعلي، مما يسمح بإدراج وسوم كاملة، لكنه يحمل خطر أمني حقيقي يُسمى XSS (Cross-Site Scripting) إذا احتوى النص المُدرَج على كود مُدخل مباشرة من مستخدم غير موثوق.

لتعديل خصائص وسم HTML مثل src أو href أو disabled، تستخدم setAttribute() لتعيين قيمة جديدة، وgetAttribute() لقراءة القيمة الحالية، وremoveAttribute() لحذف الخاصية بالكامل. كثير من الخصائص الشائعة (مثل id وclassName وvalue) متوفرة أيضاً كخصائص مباشرة على كائن العنصر نفسه (element.id، element.value) وهي أسرع وأبسط من setAttribute في هذه الحالات.

لتعديل التصميم (Style)، يمكنك الوصول لخاصية style على العنصر مباشرة وتعيين خصائص CSS عليها (مع ملاحظة أن أسماء الخصائص متعددة الكلمات تُكتب بصيغة camelCase في JavaScript، مثل backgroundColor بدل background-color). لكن الطريقة الأفضل والأكثر احترافية في المشاريع الحقيقية هي تعريف الأنماط في ملف CSS كفئات (Classes)، ثم استخدام classList.add() وclassList.remove() وclassList.toggle() للتحكم في إضافة أو إزالة أو تبديل هذه الفئات ديناميكياً — هذا يفصل المنطق (JS) عن التصميم (CSS) بشكل نظيف.

الصياغة (Syntax)

syntax
1const عنصر = document.querySelector("#box");
2
3عنصر.textContent = "نص آمن";
4عنصر.innerHTML = "<strong>نص</strong> بتنسيق";
5
6عنصر.setAttribute("data-id", "42");
7عنصر.style.backgroundColor = "blue"; // مباشر
8
9عنصر.classList.add("active"); // إضافة فئة
10عنصر.classList.remove("hidden"); // إزالة فئة
11عنصر.classList.toggle("open"); // تبديل الفئة

أمثلة عملية

مثال 1: التحكم في التصميم عبر classList

التحكم في التصميم عبر classList
1// الطريقة الاحترافية: classList بدل style المباشر
2const بطاقة = document.querySelector(".card");
3
4function تفعيل() {
5 بطاقة.classList.add("card--active");
6 بطاقة.classList.remove("card--disabled");
7}
8
9// في CSS: .card--active { border-color: blue; box-shadow: ...; }

مثال 2: خطر XSS مع innerHTML وكيفية تجنبه

خطر XSS مع innerHTML وكيفية تجنبه
1// خطر innerHTML مع مدخلات مستخدم غير موثوقة
2const تعليق_المستخدم = "<img src=x onerror=alert(1)>"; // كود ضار محتمل
3
4// ❌ خطير: قد ينفذ الكود الضار
5// عنصر.innerHTML = تعليق_المستخدم;
6
7// ✅ آمن: يُعامل كنص خام فقط
8عنصر.textContent = تعليق_المستخدم;

نصائح احترافية

  • —استخدم textContent دائماً عند عرض نص قادم من المستخدم لتجنب ثغرات XSS الأمنية الخطيرة.
  • —classList.toggle() أنيقة جداً لتبديل حالة (مفعّل/غير مفعّل) بسطر واحد بدون شروط if.
  • —فضّل تعريف الأنماط في CSS كفئات، وتحكم فيها عبر classList بدل تعديل style مباشرة من JS.
  • —أسماء خصائص CSS متعددة الكلمات تُكتب camelCase في JS: background-color تصبح backgroundColor.

الدرس السابق

تحديد عناصر الصفحة (Selecting DOM Elements)

الدرس التالي

التعامل مع الأحداث (Event Listeners)

نوفيل

منصة تعليم البرمجة الأولى بالعربي. تعلم من الصفر حتى الاحتراف مع كورسات احترافية وتحديات ذكاء اصطناعي.

المنصة

  • الكورسات
  • التحديات
  • المقالات
  • الأدوات

الحساب

  • إنشاء حساب
  • تسجيل الدخول
  • لوحة التحكم
  • الملف الشخصي

روابط

  • سياسة الخصوصية
  • شروط الاستخدام
  • عن نوفيل
  • تواصل معنا

© 2026 نوفيل. جميع الحقوق محفوظة.

صُنع بـ في مصر