التابع ‎.wrapAll()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في jQuery

من موسوعة حسوب
مراجعة 11:33، 23 يونيو 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

‎.wrapAll( wrappingElement )‎

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

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

الوصف

تغليف شيفرة HTML حول جميع العناصر في مجموعة من العناصر المُطابقة.

‎.wrapAll( wrappingElement )‎

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

wrappingElement

مُحدد أو عنصر أو سلسلة HTML أو كائن jQuery يحدد الهيكل المراد التفافه حول العناصر المُطابقة. وهو من النوع Selector أو htmlString أو Element أو jQuery.

‎.wrapAll( function )‎

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

function

دالة على الشكل Function( Integer index ) => String or jQuery.

وهي دالة رد نداء تُعيد محتوى HTML أو كائن jQuery المراد التفافها حول العناصر المطابقة. داخل الدالة، يشير this إلى العنصر الحالي في المجموعة. قبل jQuery 3.0، كانت دالة رد النداء تُستدعى بشكل غير صحيح لكل عنصر في المجموعة وتستقبل موضع فهرس العنصر في المجموعة كوسيط.

يمكن أن تأخذ الدالة ‎.wrapAll()‎ أي سلسلة أو كائن يمكن تمريره إلى الدالة ‎$()‎ لتحديد بنية DOM. قد تكون هذه البنية متداخلة لعدة مستويات، ولكن يجب أن تحتوي على عنصر عميق (inmost) واحد فقط. سيتم لف الهيكل حول جميع العناصر في مجموعة العناصر المُطابقة، كمجموعة واحدة.

إليك شيفرة HTML التالية:

<div class="container">
  <div class="inner">مرحبًا</div>
  <div class="inner">إلى اللقاء</div>
</div>

يمكن إدراج بنية HTML حول عناصر <div> الداخلية باستخدام ‎.wrapAll()‎ مثل:

$( ".inner" ).wrapAll( "<div class='new' />");

يُنشأ عنصر <div> الجديد مباشرة ويُضاف إلى DOM. والنتيجة هي <div> جديدة مُغلِّفة لجميع العناصر المُطابقة:

<div class="container">
  <div class="new">
    <div class="inner">مرحبًا</div>
    <div class="inner">إلى اللقاء</div>
  </div>
</div>

أمثلة

تغليف عنصر <div> جديد حول جميع الفقرات <p>:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapAll مثال على التابع</title>
  <style>
  div {
    border: 2px solid blue;
  }
  p {
    background: yellow;
    margin: 4px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>مرحبًا</p>
<p>أيها</p>
<p>العالم</p>
 
<script>
$( "p" ).wrapAll( "<div></div>" );
</script>
 
</body>
</html>

تغليف شجرة من الكائنات حديثة الإنشاء حول عناصر <span>. لاحظ أن أي شيء بين <span> سيُستبعد مثل <strong> (النص الأحمر) في هذا المثال. حتى المساحة البيضاء بين <span>استُبعدت. انقر فوق عرض المصدر لمشاهدة شيفرة HTML الأصلية:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapAll مثال على التابع</title>
  <style>
  div {
    border: 2px blue solid;
    margin: 2px;
    padding: 2px;
  }
  p {
    background: yellow;
    margin: 2px;
    padding: 2px;
  }
  strong {
    color: red;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<span>Span نص</span>
<strong>ماذا عن ذلك?</strong>
<span>نص آخر</span>
 
<script>
$( "span").wrapAll( "<div><div><p><em><b></b></em></p></div></div>" );
</script>
 
</body>
</html>

تغليف عنصر <div> جديد حول جميع الفقرات <p>:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapAll مثال على التابع</title>
  <style>
  div {
    border: 2px solid blue;
  }
  p {
    background: yellow;
    margin: 4px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>مرحبًا</p>
<p>أيها</p>
<p>العالم</p>
 
<script>
$( "p" ).wrapAll( document.createElement( "div" ) );
</script>
 
</body>
</html>

تغليف كائن jQuery من <div> مزدوج حول كافة الفقرات <p>. لاحظ أنها لا تحرك الكائن ولكنها تستنسخ فقط من أجل التغليف حول هدفها:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>wrapAll مثال على التابع</title>
  <style>
  div {
    border: 2px solid blue;
    margin: 2px;
    padding: 2px;
  }
  .doublediv {
    border-color: red;
  }
  p {
    background: yellow;
    margin: 4px;
    font-size: 14px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<p>مرحبًا</p>
<p>أيها</p>
<p>العالم</p>
<div class="doublediv"><div></div></div>
 
<script>
$( "p" ).wrapAll( $( ".doublediv" ) );
</script>
 
</body>
</html>

مصادر