معالجة DOM باستخدام jQuery - 2
معالجة DOM باستخدام jQuery - 2
معالجة DOM باستخدام jQuery - 2 درس مجاني في jQuery Academy على CoddyKit. هذا هو الدرس 1 من أصل 1. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في jQuery Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة jQuery Academy 1 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
مقدمة و append
مرحبًا،
في أمثلتنا السابقة، أجرينا عملية تحديث أو قراءة لكائنات HTML DOM.
سنتعلم عملية الإدراج باستخدام طريقة append().
لنلقِ نظرة على مثال.
<button id="add">
Add New Item
</button>
<div id="target"></div>
<script>
/*
Listen for an element with
the add id click
*/
$('#add').click(function(){
/*
append '<p>This is the appended
text</p>' to #target element
*/
$("#target").append("<p>Appended text</p>");
})
</script>إلحاق
بعد تشغيل الشيفرة أعلاه، ستضيف طريقة append شيفرة HTML (الممررة كوسيط) في نهاية العنصر #test.
إدراج في البداية
طريقة prepend()
عكس طريقة append() هو طريقة prepend() . تضيف طريقة append() المحتوى إلى نهاية محتوى العنصر المستهدف، بينما تضيفه prepend إلى البداية.
<div id="target"></div>
<button id="add">
Add New Item
</button>
<script>
/*
Listen for an element
with the add id click
*/
$('#add').click(function(){
/* append '<p>This is the prepended text</p>'
to #target element
*/
$("#target").prepend("<p>This is the appended text</p>");
})
</script>سؤال
باستخدام أسلوبي append وprepend، تمكّنا من إضافة عناصر HTML جديدة في نهاية العنصر المستهدف وبدايته.
فكيف نضيف عنصرًا بوصفه عنصرًا شقيقًا للعنصر المستهدف؟
مثال
لنواصل المثال السابق.
تكون عقدة HTML الخاصة بنا في الحالة الأولى كما يلي.
<div id="test">
<p>initial paragraph</p>
</div>أسلوبا after وbefore
أسلوبا after() وbefore()
يمكننا إضافة عناصر HTML قبل العنصر المستهدف وبعده باستخدام أسلوبي after() وbefore() .
في شيفرة المثال أدناه، أُضيف عنصر جديد إلى العنصر ذي المعرّف #test، مباشرةً قبله وبعده في تسلسل العناصر الشقيقة.
<div id="test">
<p>initial paragraph</p>
</div>
<script>
$('#test').before('<p>I am before the #test element</p>');
$('#test').after('<p>I am after the #test element</p>');
</script>
إدراج متعدد
حتى الآن، رأينا طرق prepend() وappend() وbefore() وafter(). لقد نسيت شرح موضوع ما. عذرًا، فقد أنسى أحيانًا 😇.
فماذا نفعل إذا أردنا إضافة أكثر من عقدة واحدة في الوقت نفسه؟
كما في المثال أدناه،
يمكننا إضافة أكثر من عقدة واحدة في الوقت نفسه بتمرير أكثر من وسيط إلى الطرق ذات الصلة.
<p>
<span id="target"></span>
</p>
<script>
var firstNode = '<p id="first-node">First node</p>';
var secondNode = '<p id="first-node">Second node</p>';
var thirdNode = '<p id="first-node">Third node</p>';
/*
The following four methods work
with the same logic and take
more than one argument.
*/
$('#target').before(firstNode, secondNode, thirdNode);
$('#target').after(firstNode, secondNode, thirdNode);
$('#target').append(firstNode, secondNode, thirdNode);
$('#target').prepend(firstNode, secondNode, thirdNode);
</script>مثال على التسلسل
في المثال أعلاه، أُضيفت أكثر من عقدة في الوقت نفسه. وكما ترون، ستبقى الصياغة نفسها حتى عند استخدام طرق مختلفة.
وفي الوقت نفسه، يمكننا كتابة الشيفرة في JQuery بإجراء تسلسل.
وبهذه الطريقة، يمكننا كتابة شيفرة أقصر وأكثر فاعلية.
لنلقِ نظرة على المثال ونتعلم كيفية كتابة شيفرة متسلسلة في jQuery.
<p id="test"></p>
<script>
var firstNode = '<p id="first-node">First node</p>';
var secondNode = '<p id="first-node">Second node</p>';
var thirdNode = '<p id="first-node">Third node</p>';
/*
We made our code shorter.
Also, we have done the select operation
on the DOM only once instead of twice.
*/
$('#test').before(firstNode, secondNode, thirdNode)
.after(firstNode, secondNode, thirdNode);
</script>أسلوب wrap
أسلوب wrap()
ما الأسلوب الذي سنستخدمه إذا أردنا وضع عنصر HTML داخل حاوية أخرى؟
بالطبع، سنستخدم أسلوب wrap() .
يوضح المثال التالي استخدامًا بسيطًا لأسلوب wrap.
<div id="target"></div>
<script>
/*
When we apply the code below.
The node we assigned as an argument
will come around our target element.
*/
$("#target").wrap('<div class="container">Container wrapped the target element</div>');
//The result will be as follows
/*
<div class="container">
Container wrapper the target element
<div id="target">
</div>
</div>
*/
</script>
Question
أسلوب unwrap
أسلوب unwrap()
لدينا الأسلوب المعاكس لأسلوب wrap(). باستخدام أسلوب unwrap()، يمكننا حذف العنصر الأب لعنصر مستهدف.
const $ = (selector) => ({
unwrap: () => console.log(`Unwrapped ${selector}`)
});
$("#target").unwrap();أسلوب empty
أسلوب empty()
لنلقِ نظرة على حذف عناصر HTML.
باستخدام أسلوب empty()، يمكننا حذف جميع العناصر الابنة والعناصر المتحدرة من عنصر مستهدف.
// Removes all descendants of the element from the DOM.
// (Simulated for Node.js environment)
const $ = (selector) => ({
empty: () => console.log(`Removed all descendants of ${selector}`)
});
$("#target").empty();أسلوب remove()
أسلوب remove()
يزيل أسلوب remove() العناصر المتحدرة من العنصر، كما يزيل العنصر نفسه من DOM.
/*
Removes the element and
all descendants of the element from the DOM.
*/
$('#target').remove();تهانينا
تهانينا 🎉
لقد تعلّمنا معالجة DOM.
في القسم التالي، سنتعلّم تنسيق العناصر باستخدام JQuery.

الأسئلة الشائعة
هل درس «معالجة DOM باستخدام jQuery - 2» مجاني؟
نعم — نص درس «معالجة DOM باستخدام jQuery - 2» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة jQuery Academy، انتقل إلى CoddyKit PRO. تتضمن دورة jQuery Academy 1 دروس في المجموع.
ماذا ستتعلم في «معالجة DOM باستخدام jQuery - 2»؟
معالجة DOM باستخدام jQuery - 2 تتمرن على jQuery Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ jQuery Academy؟
لا تُشترط خبرة سابقة. jQuery Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 1.
كم من الوقت يستغرق درس «معالجة DOM باستخدام jQuery - 2»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس jQuery Academy هذا؟
نعم. كل درس في jQuery Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.