الفرق بين المراجعتين ل"jQuery/empty"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
سطر 14: سطر 14:
 
لا يقبل هذا التابع أي وسائط.
 
لا يقبل هذا التابع أي وسائط.
  
لا يزيل هذا التابع العناصر الأبناء (والعناصر السليلة الأخرى) فقط، بل يزيل أيضًا أي نص ضمن مجموعة العناصر المتطابقة. ويرجع ذلك إلى أنه وفقًا لمواصفات DOM، تعتبر أي سلسلة نصية داخل عنصر ما عقدة ابنة لهذا العنصر. إليك شيفرة HTML التالية:<syntaxhighlight lang="html">
+
لا يزيل هذا التابع العناصر الأبناء (والعناصر السليلة الأخرى) فقط، بل يزيل أيضًا أي نص ضمن مجموعة العناصر المتطابقة. ويرجع ذلك إلى أنه وفقًا لمواصفات DOM، تعدّ أي سلسلة نصية داخل عنصر ما عقدة ابن لهذا العنصر. إليك شيفرة HTML التالية:<syntaxhighlight lang="html">
 
<div class="container">
 
<div class="container">
 
   <div class="hello">Hello</div>
 
   <div class="hello">Hello</div>
سطر 26: سطر 26:
 
   <div class="goodbye">Goodbye</div>
 
   <div class="goodbye">Goodbye</div>
 
</div>
 
</div>
</syntaxhighlight>إذا كان لدينا أي عدد من العناصر المتداخلة داخل <code><nowiki><div class="hello"></nowiki></code>، فستُحذف أيضًا.<div class="hello">
+
</syntaxhighlight>إذا كان لدينا أي عدد من العناصر المتداخلة داخل <code><nowiki><div class="hello"></nowiki></code>، فستُحذف أيضًا.<div class="hello">
 
لتجنب تسرب الذاكرة، يحذف jQuery التركيبات الأخرى مثل معالجات الأحداث والبيانات من العناصر الأبناء قبل إزالة العناصر نفسها. أما إذا كنت تريد إزالة عناصر دون تدمير البيانات أو معالجات الأحداث (حتى يمكن إضافتها لاحقًا) ، فيجب استخدام <code>[[jQuery/detach|‎.detach()‎]]</code> بدلاً من ذلك.
 
لتجنب تسرب الذاكرة، يحذف jQuery التركيبات الأخرى مثل معالجات الأحداث والبيانات من العناصر الأبناء قبل إزالة العناصر نفسها. أما إذا كنت تريد إزالة عناصر دون تدمير البيانات أو معالجات الأحداث (حتى يمكن إضافتها لاحقًا) ، فيجب استخدام <code>[[jQuery/detach|‎.detach()‎]]</code> بدلاً من ذلك.
  
 
=== أمثلة ===
 
=== أمثلة ===
إزالة جميع العُقَد الأبناء (بما في ذلك عُقَد النص) من جميع الفقرات.<syntaxhighlight lang="html">
+
مثال عن إزالة جميع العُقَد الأبناء (بما في ذلك عُقَد النص) من جميع الفقرات:<syntaxhighlight lang="html">
 
<!doctype html>
 
<!doctype html>
 
<html lang="en">
 
<html lang="en">

مراجعة 06:13، 14 مايو 2018


‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎.empty()‎‎

القيمة المعادة

يُعيد كائنًا من النوع jQuery.

الوصف

يُزيل هذا التابع كافة العُقَد السليلة لمجموعة العناصر المتطابقة من DOM.

‎.empty()‎

أُضيف مع الإصدار: 1.0.

لا يقبل هذا التابع أي وسائط.

لا يزيل هذا التابع العناصر الأبناء (والعناصر السليلة الأخرى) فقط، بل يزيل أيضًا أي نص ضمن مجموعة العناصر المتطابقة. ويرجع ذلك إلى أنه وفقًا لمواصفات DOM، تعدّ أي سلسلة نصية داخل عنصر ما عقدة ابن لهذا العنصر. إليك شيفرة HTML التالية:

<div class="container">
  <div class="hello">Hello</div>
  <div class="goodbye">Goodbye</div>
</div>

يمكننا استهداف أي عنصر لإزالته:

$( ".hello" ).empty();

سيؤدي ذلك إلى بنية DOM محذوف فيها نص Hello:

<div class="container">
  <div class="hello"></div>
  <div class="goodbye">Goodbye</div>
</div>

إذا كان لدينا أي عدد من العناصر المتداخلة داخل <div class="hello"‎>، فستُحذف أيضًا.

لتجنب تسرب الذاكرة، يحذف jQuery التركيبات الأخرى مثل معالجات الأحداث والبيانات من العناصر الأبناء قبل إزالة العناصر نفسها. أما إذا كنت تريد إزالة عناصر دون تدمير البيانات أو معالجات الأحداث (حتى يمكن إضافتها لاحقًا) ، فيجب استخدام ‎.detach()‎ بدلاً من ذلك.

أمثلة

مثال عن إزالة جميع العُقَد الأبناء (بما في ذلك عُقَد النص) من جميع الفقرات:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>empty demo</title>
  <style>
  p {
    background: yellow;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>
  Hello, <span>Person</span> <em>and person</em>.
</p>
 
<button>Call empty() on above paragraph</button>
 
<script>
$( "button" ).click(function() {
  $( "p" ).empty();
});
</script>
 
</body>
</html>

مصادر