امتحان JS 3: التعامل مع DOM والأحداث (10 تمارين مركبة)

امتحان JS 3: التعامل مع DOM والأحداث

اختبر مهاراتك في التفاعل مع صفحة الويب، تعديل محتواها، والاستجابة لأفعال المستخدم.

تمرين 1 اختيار العناصر (Selecting Elements)

اكتب كود JS لاختيار العناصر التالية:

  1. عنصر يحمل المعرف `header` (استخدم `getElementById`).
  2. جميع العناصر التي تحمل الفئة `btn` (استخدم `querySelectorAll`).
  3. أول عنصر `p` في الصفحة (استخدم `querySelector`).
الحل
const header = document.getElementById("header");
const buttons = document.querySelectorAll(".btn");
const firstPara = document.querySelector("p");
تمرين 2 تغيير المحتوى (Changing Content)

لديك عنصر `h1` بالمعرف `title`:

  1. غير نصه الداخلي ليصبح "مرحباً بالعالم" (innerText).
  2. غير محتواه ليصبح `<span>مرحباً</span>` (innerHTML).
الحل
const title = document.getElementById("title");

title.innerText = "مرحباً بالعالم";
title.innerHTML = "<span>مرحباً</span>";
تمرين 3 تغيير الأنماط (Changing Styles)

غير تنسيق العنصر `box`:

  1. اجعل لون الخلفية أحمر (backgroundColor).
  2. اجعل حجم الخط 20px (fontSize).
  3. أخفِ العنصر تماماً (display = 'none').
الحل
const box = document.getElementById("box");

box.style.backgroundColor = "red";
box.style.fontSize = "20px";
box.style.display = "none";
تمرين 4 التعامل مع الفئات (Class Manipulation)

استخدم `classList` لتعديل فئات العنصر `item`:

  1. أضف الفئة `active`.
  2. أزل الفئة `hidden`.
  3. بدل حالة الفئة `selected` (toggle).
الحل
const item = document.getElementById("item");

item.classList.add("active");
item.classList.remove("hidden");
item.classList.toggle("selected");
تمرين 5 إنشاء وإضافة العناصر (Creating Elements)

أضف عنصراً جديداً للصفحة:

  1. أنشئ عنصر `li` جديد.
  2. أضف له النص "عنصر جديد".
  3. أضفه كابن لقائمة موجودة بالمعرف `list` (appendChild).
الحل
const newItem = document.createElement("li");
newItem.innerText = "عنصر جديد";

const list = document.getElementById("list");
list.appendChild(newItem);
تمرين 6 مستمع الأحداث (Event Listeners)

اجعل الزر `btn` تفاعلياً:

  1. أضف مستمع لحدث النقر (click).
  2. عند النقر، اطبع "تم النقر!" في الكونسول.
الحل
const btn = document.getElementById("btn");

btn.addEventListener("click", function() {
    console.log("تم النقر!");
});
تمرين 7 التعامل مع المدخلات (Input Values)

اقرأ قيمة من حقل إدخال:

  1. لديك حقل إدخال `input` وزر.
  2. عند النقر على الزر، اقرأ القيمة الموجودة في الحقل (`value`).
  3. اعرضها في تنبيه (`alert`).
الحل
const input = document.getElementById("myInput");
const btn = document.getElementById("myBtn");

btn.addEventListener("click", function() {
    alert(input.value);
});
تمرين 8 أحداث لوحة المفاتيح (Keyboard Events)

استمع لضغطات المفاتيح:

  1. أضف مستمع لحدث `keydown` على كامل المستند.
  2. اطبع اسم المفتاح المضغوط (`event.key`) في الكونسول.
الحل
document.addEventListener("keydown", function(event) {
    console.log(event.key);
});
تمرين 9 منع السلوك الافتراضي (Prevent Default)

امنع نموذجاً من الإرسال:

  1. لديك نموذج `form`.
  2. عند حدث الإرسال (`submit`)، امنع الصفحة من إعادة التحميل باستخدام `event.preventDefault()`.
  3. اطبع "تم إيقاف الإرسال".
الحل
const form = document.getElementById("myForm");

form.addEventListener("submit", function(event) {
    event.preventDefault();
    console.log("تم إيقاف الإرسال");
});
تمرين 10 حذف العناصر (Removing Elements)

احذف عنصراً من الصفحة:

  1. عند النقر على العنصر `item`، قم بحذفه من DOM.
  2. استخدم `item.remove()` أو `item.parentElement.removeChild(item)`.
الحل
const item = document.getElementById("item");

item.addEventListener("click", function() {
    item.remove();
});
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن