jQuery 3.3

.not()




jquery

.not (selector) إرجاع: jQuery

الوصف: إزالة العناصر من مجموعة العناصر المتطابقة.

  • الإصدار المضاف: 1.0 .not (selector)

    • منتخب
      النوع: Selector أو Element أو Array
      سلسلة تحتوي على تعبير محدد أو عنصر DOM أو مجموعة من العناصر لمطابقة المجموعة.
  • الإصدار المضاف: 1.4 .not (وظيفة)

    • وظيفة
      النوع: Function (فهرس Integer ، Element عنصر) => Boolean
      دالة تستخدم كاختبار لكل عنصر في المجموعة. وهي تقبل الوسيطتين ، index ، وهو index العنصر في مجموعة jQuery ، element ، وهو عنصر DOM. داخل الدالة ، يشير this إلى عنصر DOM الحالي.
  • الإصدار المضاف: 1.4 . لا (اختيار)

    • اختيار
      النوع: jQuery
      كائن jQuery موجود لمطابقة المجموعة الحالية من العناصر.

بالنظر إلى كائن jQuery الذي يمثل مجموعة من عناصر DOM ، تقوم طريقة .not() بإنشاء كائن jQuery جديد من مجموعة فرعية من العناصر المطابقة. يتم اختبار المحدد المحدد لكل عنصر. سيتم تضمين العناصر التي لا تطابق المحدد في النتيجة.

فكر في صفحة بها قائمة بسيطة عليها:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

يمكننا تطبيق هذه الطريقة على مجموعة عناصر القائمة:

$( "li" ).not( ":even" ).css( "background-color", "red" );

نتيجة هذه المكالمة هي خلفية حمراء للبندين 2 و 4 ، لأنها لا تتطابق مع المحدد (تذكر أن: حتى و: odd تستخدم الفهرسة المستندة إلى 0).

إزالة عناصر محددة

تسمح لنا النسخة الثانية من طريقة .not() بإزالة عناصر من المجموعة المتطابقة ، على افتراض أننا وجدنا هذه العناصر في السابق بواسطة بعض الوسائل الأخرى. على سبيل المثال ، لنفترض أن قائمتنا لها معرف مطبق على أحد عناصره:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li id="notli">list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>

يمكننا إحضار عنصر القائمة الثالث باستخدام الدالة JavaScript الأساسية getElementById() ، ثم إزالته من كائن jQuery:

$( "li" ).not( document.getElementById( "notli" ) )
  .css( "background-color", "red" );

هذا البيان يغير لون البنود 1 و 2 و 4 و 5. كان بإمكاننا تحقيق نفس الشيء باستخدام تعبير jQuery أبسط ، ولكن هذه التقنية يمكن أن تكون مفيدة عندما ، على سبيل المثال ، توفر المكتبات الأخرى مراجع لعقد DOM بسيطة.

اعتبارًا من jQuery 1.4 ، يمكن أن تأخذ الطريقة .filter() دالة كوسيطة لها بنفس الطريقة التي يقوم بها .filter() . تستبعد العناصر التي ترجع الدالة true من المجموعة التي تمت تصفيتها ؛ يتم تضمين كافة العناصر الأخرى.

ملاحظة: عندما يتم تمرير سلسلة محدد CSS إلى .not() ، ستتم إزالة النص وعقد التعليق دائمًا من كائن jQuery الناتج أثناء عملية التصفية. عندما يتم توفير عقدة أو مصفوفة معينة للعقد ، لن تتم إزالة النص أو عقد التعليق إلا من كائن jQuery إذا كانت تطابق أحد العقد في مصفوفة التصفية.

أمثلة:

يضيف الحدود إلى divs التي ليست خضراء أو زرقاء.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>not demo</title>
  <style>
  div {
    width: 50px;
    height: 50px;
    margin: 10px;
    float: left;
    background: yellow;
    border: 2px solid white;
  }
  .green {
    background: #8f8;
  }
  .gray {
    background: #ccc;
  }
  #blueone {
    background: #99f;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div></div>
<div id="blueone"></div>
<div></div>
<div class="green"></div>
<div class="green"></div>
<div class="gray"></div>
<div></div>
 
<script>
$( "div" ).not( ".green, #blueone" )
  .css( "border-color", "red" );
</script>
 
</body>
</html>

عرض:

يزيل العنصر بالمعرف "محدد" من مجموعة جميع الفقرات.

$( "p" ).not( $( "#selected" )[ 0 ] );

يزيل العنصر بالمعرف "محدد" من مجموعة جميع الفقرات.

$( "p" ).not( "#selected" );

يزيل كل العناصر التي تتطابق مع "div p.selected" من المجموع الكلي لكل الفقرات.

$( "p" ).not( $( "div p.selected" ) );