DOM تعلم

ما هو DOM (نموذج كائن المستند)؟

مقدمة

عند تطوير صفحات الويب، يحتاج المطور إلى طريقة للتفاعل مع عناصر الصفحة وتغييرها بشكل ديناميكي. هنا يأتي دور DOM، وهو اختصار لـ Document Object Model أي “نموذج كائن المستند”. يعتبر DOM حجر الأساس في برمجة صفحات الويب التفاعلية باستخدام JavaScript.


ما هو DOM؟

DOM هو واجهة برمجية (API) تمثل محتوى وهيكل صفحة الويب (HTML أو XML) على شكل شجرة من الكائنات. كل عنصر في صفحة الويب يُعتبر عقدة (Node) في هذه الشجرة، ويمكن الوصول إليها أو تعديلها باستخدام لغات البرمجة، مثل JavaScript.

على سبيل المثال، الوسم <p> في HTML يصبح كائنًا في DOM يمكن تغييره أو حذفه أو التفاعل معه.


مكونات DOM

DOM يتكون من عدة أنواع من العقد، وأهمها:

  • العقدة الجذرية (Root Node): تمثل العنصر <html>.

  • عقدة العنصر (Element Node): تمثل الوسوم مثل <div>, <p>, <a>.

  • عقدة النص (Text Node): تمثل النصوص داخل الوسوم.

  • عقدة التعليق (Comment Node): تمثل التعليقات مثل <!-- تعليق -->.


أهمية DOM في تطوير الويب

  • تغيير المحتوى ديناميكيًا: يمكن للمطور تغيير النصوص والصور والعناصر بناءً على تفاعل المستخدم.

  • التحكم في الأنماط (CSS): يمكن تغيير الألوان والخطوط والتصميمات من خلال DOM.

  • الاستجابة للأحداث: يمكن ربط الأحداث مثل النقر أو التحريك بعناصر معينة.


مثال عملي باستخدام JavaScript:

<p id="demo">مرحبًا بك!</p>
<button onclick="changeText()">اضغط هنا</button>
<script>
function changeText() {
document.getElementById("demo").innerText = "تم التغيير!";
}
</script>

في هذا المثال، نستخدم DOM لتحديد الفقرة وتغيير محتواها عند الضغط على الزر.


الخلاصة

DOM هو مفهوم أساسي لأي شخص يعمل في تطوير الويب. يمنح المطور قدرة على التحكم الكامل في محتوى الصفحة وهيكلها وسلوكها. ومن خلاله، يمكن خلق صفحات ويب تفاعلية وسلسة تُحسن من تجربة المستخدم.

تحميل كتاب DOM تعلم

Author photo
Publication date:
Author: Farahat
أنا مهندس حاسبات وأنظمة، أمتلك شغفًا كبيرًا بمجالات التقنية المتنوعة، وأسعى دائمًا لفهم وتطوير الأنظمة المختلفة سواء كانت كهربائية، إلكترونية أو ميكانيكية. أؤمن بأهمية الدمج بين هذه المجالات لتقديم حلول هندسية متكاملة وفعالة. لدي اهتمام خاص بمجال البرمجة، وأتقن العمل بعدة لغات مثل C و++C وPython وJava، وأسعى باستمرار لتعلم تقنيات جديدة وتوسيع معرفتي العملية والنظرية. تساعدني خلفيتي المتعددة التخصصات على الربط بين العتاد (الهاردوير) والبرمجيات، مما يمنحني مرونة في التعامل مع التحديات التقنية المختلفة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *