جافاسكربتإضافة / حذف عناصر
- إدارة عناصر الصفحة
- إنشاء عنصر و إضافته في الصفحة
- إضافة كود HTML جاهز في العنصر
- حذف عنصر من الصفحة
- تبديل العنصر الإبن بعنصر آخر
إدارة عناصر الصفحة
الكائن document
يوفر دوال جاهزة يمكن من خلالها إنشاء عناصر جديدة و تحديد أين سيتم إضافتها، إستبدال العناصر بعناصر أخرى، بالإضافة إلى حذف العناصر من الصفحة.
في هذا الدرس ستتعلم كيف تنشئ عناصر جديدة، كيف تضيفها في الصفحة و في النهاية ستتعلم كيف تحذف عناصر منها.
إنشاء عنصر و إضافته في الصفحة
لإنشاء عنصر جديد في الصفحة يمكنك استخدام إحدى الدوال التالية:
- الدالة
createElement()
تستخدم لإنشاء وسم HTML مثل<p>
و<div>
. - الدالة
createTextNode()
تستخدم لإنشاء نص عادي يمكن عرضه بداخل وسم.
الوسم الذي تنشئه بواسطة جافاسكربت، لا يظهر في الصفحة إلا بعد أن تقوم بإضافته فيها.
سنتعرف تباعاً على جميع الدوال التي يمكن من خلالها إضافة العناصر التي يتم إنشاءها في الصفحة.
إضافة العنصر الجديد في آخر العنصر
يمكنك استخدام الدالة appendChild()
لإضافة العنصر الذي تم إنشاؤه بداخل عنصر آخر.
هذه الدالة تقوم بإضافة العنصر الذي تم تمريره لها في آخر العنصر الذي قام باستدعائها.
في المثال التالي قمنا بإنشاء وسم <p>
و بداخله وضعنا نص عادي.
بعدها قمنا بإضافة الوسم <p>
في الوسم <main>
الموجود أساساً في الصفحة.
مثال
// pElement و قمنا بتخزينه في المتغير <p> هنا قمنا بإنشاء وسم var pElement = document.createElement('p'); // pText هنا قمنا بإنشاء نص يمكن وضعه في وسم و قمنا بتخزينه في المتغير var pText = document.createTextNode('This paragraph is added via Javascript.'); // pElement في pText هنا قمنا بإضافة pElement.appendChild(pText); // mainElement في الصفحة في المتغير <main> هنا قمنا بتخزين أول وسم var mainElement = document.getElementsByTagName('main')[0]; // mainElement في pElement هنا قمنا بإضافة mainElement.appendChild(pElement);
إضافة العنصر الجديد قبل عنصر محدد
يمكنك استخدام الدالة document.body.insertBefore()
لإضافة العنصر الذي تم إنشاؤه قبل عنصر محدد في الصفحة.
عند استدعائها يجب أن تمرر لها كائنين، الأول يمثل العنصر الجديد و الثاني يمثل العنصر الذي تريد إضافته قبله.
في المثال التالي قمنا بإنشاء وسم <div>
و بداخله وضعنا نص عادي.
بعدها قمنا بإضافة الوسم <div>
قبل الوسم <main>
الموجود أساساً في الصفحة.
مثال
// divElement و قمنا بتخزينه في المتغير <div> هنا قمنا بإنشاء وسم var divElement = document.createElement('div'); // divText هنا قمنا بإنشاء نص يمكن وضعه في وسم و قمنا بتخزينه في المتغير var divText = document.createTextNode('This div is added via Javascript.'); // divElement في divText هنا قمنا بإضافة divElement.appendChild(divText); // mainElement في الصفحة في المتغير <main> هنا قمنا بتخزين أول وسم var mainElement = document.getElementsByTagName('main')[0]; // mainElement قبل العنصر divElement هنا قمنا بإضافة document.body.insertBefore(divElement, mainElement);
إضافة كود HTML جاهز في العنصر
في حال أردت تمرير كود HTML بشكل مباشر في العنصر فيمكنك إسناده له كنص عن طريق الخاصية innerHTML
.
هذه الخاصية تقوم بتديل كل محتوى العنصر بالمحتوى الذي نمرره لها.
في المثال التالي قمنا بتبديل كل المحتوى الموجود في الوسم <main>
بكود HTML جديد.
مثال
// mainElement في الصفحة في المتغير <main> هنا قمنا بتخزين أول وسم var mainElement = document.getElementsByTagName('main')[0]; // mainElement هنا قمنا بتبديل كل المحتوى الموجود في العنصر الذي يمثله المتغير mainElement.innerHTML = '<p>Content is totally replaced by <b>Javascript</b></p>';
تمرير كود HTML بجانب المحتوى
يمكنك استخدام الدالة insertAdjacentHTML()
في حال أردت إضافة كود HTML جاهز بدون حذف المحتوى الحالي في العنصر.
عندها استدعائها يجب أن تمرر لها قيمتين، الأولى تمثل الموقع الذي سيتم إضافة الكود فيه و الثانية تمثل الكود الذي سيتم إضافته.
فيما يلي القيم النصية التي يمكنك استخدامها مع الدالة insertAdjacentHTML()
لتحديد المكان الذي سيتم إضافة الكود به.
القيمة | معناها |
---|---|
'beforebegin' |
لإضافة الكود قبل العنصر مباشرةً. |
'afterend' |
لإضافة الكود بعد العنصر مباشرةً. |
'afterbegin' |
لإضافة الكود في أول العنصر، أي قبل المحتوى الحالي الموجود فيه. |
'beforeend' |
لإضافة الكود في آخر العنصر، أي بعد المحتوى الحالي الموجود فيه. |
في المثال التالي قمنا بإضافة كود HTML قبل و بعد الوسم الذي يملك id
يساوي demo
.
المثال الأول
// element في المتغير demo يساوي id هنا قمنا بتخزين العنصر الذي يملك var element = document.getElementById('demo'); // element هنا قمنا بإضافة فقرة قبل الوسم الذي يمثله المتغير element.insertAdjacentHTML('beforebegin', '<p>This element is added before the demo element.</p>'); // element هنا قمنا بإضافة فقرة قبل الوسم الذي يمثله المتغير element.insertAdjacentHTML('afterend', '<p>This element is added after the demo element.</p>');
في المثال التالي قمنا بإضافة كود HTML في بداية و النهاية الوسم الذي يملك id
يساوي demo
.
المثال الثاني
// element في المتغير demo يساوي id هنا قمنا بتخزين العنصر الذي يملك var element = document.getElementById('demo'); // element هنا قمنا بإضافة كلمة بخط عريض في بداية الوسم الذي يمثله المتغير element.insertAdjacentHTML('afterbegin', '<b>After Beginnig</b> - '); // element هنا قمنا بإضافة كلمة بخط عريض في نهاية الوسم الذي يمثله المتغير element.insertAdjacentHTML('beforeend', ' - <b>Before End</b>');
حذف عنصر من الصفحة
يمكنك استخدام الدالة remove()
لحذف أي عنصر موجود في الصفحة.
إذاً يمكنك استدعائها من أي عنصر حتى تقوم بحذفه من الصفحة.
في المثال التالي قمنا بحذف الوسم الذي يملك id
يساوي demo
.
مثال
// element في المتغير demo يساوي id هنا قمنا بتخزين العنصر الذي يملك var element = document.getElementById('demo'); // من الصفحة element هنا قمنا بحذف الوسم الذي يمثله المتغير element.remove();
حذف العنصر الإبن
يمكنك استخدام الدالة removeChild()
لحذف عنصر موجود كإبن لعنصر آخر في الصفحة.
إذاً يجب استدعائها من العنصر الأب، و تمرير العنصر الإبن الذي تريد حذفه منه لها.
في المثال التالي قمنا بحذف الوسم الذي يملك id="child"
و الموجود بداخل وسم يملك id="parent"
.
مثال
// parentElement في المتغير parent يساوي id هنا قمنا بتخزين العنصر الذي يملك var parentElement = document.getElementById('parent'); // childElement في المتغير child يساوي id هنا قمنا بتخزين العنصر الذي يملك var childElement = document.getElementById('child'); // childElement هنا قمنا بحذف الوسم الذي يمثله المتغير // parentElement الموجود بداخل الوسم الذي يمثله المتغير parentElement.removeChild(childElement);
الدالة removeChild()
ترجع الكائن الذي تم حذف و هذا الأمر يمكنك الإستفادة منه في حال أردت إعلام المستخدم بذلك.
هنا قمنا بإعادة المثال السابق و لكننا هذه المرة قمنا بتخزين العنصر الذي تم حذفه في متغير و من بعدها قمنا بإعلام المستخدم بأنه تم حذفه.
مثال
var parentElement = document.getElementById('parent'); var childElement = document.getElementById('child'); // removedElement هنا قمنا بتخزين العنصر الذي حذفناه بداخل المتغير var removedElement = parentElement.removeChild(childElement); // removedElement العنصر الذي تم حذفه و المخزن في المتغير id هنا قمنا بطباعة document.write('Element with id equal "' + removedElement.id + '" is removed.');
تبديل العنصر الإبن بعنصر آخر
يمكنك استخدام الدالة replacechild()
لتبديل العنصر الإبن بعنصر آخر.
إذاً يجب استدعائها من العنصر الأب و تمرير كائنين لها، الأول يمثل العنصر الجديد الذي سيتم وضعه و الثاني يمثل العنصر القديم الذي سيتم استبداله.
في المثال التالي قمنا بتبديل الوسم الذي يملك id="child"
و الموجود بداخل وسم يملك id="parent"
بوسم جديد.
مثال
// parent في المتغير parent يساوي id هنا قمنا بتخزين العنصر الذي يملك var parent = document.getElementById('parent'); // oldChild في المتغير child يساوي id هنا قمنا بتخزين العنصر الذي يملك var oldChild = document.getElementById('child'); // newChild و قمنا بتخزينه في المتغير <p> هنا قمنا بإنشاء وسم var newChild = document.createElement('p'); // newChildText هنا قمنا بإنشاء نص يمكن وضعه في وسم و قمنا بتخزينه في المتغير var newChildText = document.createTextNode('Replaced by Javascript.'); // newChild في newChildText هنا قمنا بإضافة newChild.appendChild(newChildText); // oldChild هنا قمنا بتديل الوسم الذي يمثله المتغير // parent الموجود بداخل الوسم الذي يمثله المتغير // newChild بالوسم الجديد الذي يمثله المتغير parent.replaceChild(newChild, oldChild);