jQuery traversal - not() method

مثال

از مجموعه‌ای که شامل همه‌ی بخش‌ها است، بخشی با شناسه‌ی "selected" را حذف کنید:

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

باور کنید!

تعریف و استفاده

از مجموعه‌ی عناصر هماهنگ شده، عنصر را حذف کنید.

آموزش 1

.not(selector)
پارامترها توضیحات
selector مقدار رشته‌ای که شامل عبارت انتخاب‌گر برای تطابق با عناصر است.

آموزش 2

.not(element)
پارامترها توضیحات
element یک یا چند عنصر DOM که باید از مجموعه تطابق حذف شوند.

آموزش 3

.not(function(index))
پارامترها توضیحات
function(index) توابعی که برای هر عنصر در مجموعه بررسی می‌شوند. این اینترفیس این عنصر DOM فعلی است.

توضیحات دقیق

اگر یک مجموعه از عناصر DOM توسط یک مجموعه جومو نشان داده شود، روش .not() یک مجموعه جومو جدید با استفاده از زیر مجموعه تطابق‌های تطابق‌شده ایجاد می‌کند. انتخاب‌گر اعمال شده هر عنصر را بررسی می‌کند؛ عناصر که با این انتخاب‌گر مطابقت نمی‌کنند، در نتیجه شامل می‌شوند.

به صفحه زیر با یک لیست ساده فکر کنید:

<ul>
  <li>آیتم لیست 1</li>
  <li>آیتم لیست 2</li>
  <li>آیتم لیست 3</li>
  <li>آیتم لیست 4</li>
  <li>آیتم لیست 5</li>
</ul>

ما می‌توانیم این روش را به مجموعه آیتم‌های لیست اعمال کنیم:

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

باور کنید!

نتیجه این فراخوانی، تنظیم پس‌زمینه پروژه‌های 2 و 4 به رنگ قرمز است، زیرا آن‌ها با انتخاب‌گر مطابقت ندارند (یادآوری کنید که :even و :odd از شمارنده مبتنی بر 0 استفاده می‌کنند).

حذف عناصر خاص

نسخه دوم روش .not() به ما اجازه می‌دهد تا عناصر را از مجموعه تطابق حذف کنیم، فرض کنید که ما قبلاً این عناصر را از طریق روش‌های دیگر پیدا کرده‌ایم. به عنوان مثال، تصور کنید که یک لیست به یکی از پروژه‌ها یک شناسه (id) اعمال کرده باشد:

<ul>
  <li>آیتم لیست 1</li>
  <li>آیتم لیست 2</li>
  <li id="notli">آیتم لیست 3</li>
  <li>آیتم لیست 4</li>
  <li>آیتم لیست 5</li>
</ul>

ما می‌توانیم از تابع پیش‌فرض جاوااسکریپت getElementById() برای خواندن سومین آیتم لیست استفاده کنیم و سپس آن را از مجموعه جومو حذف کنیم:

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

باور کنید!

این جمله رنگ پس‌زمینه پروژه‌های 1، 2، 3 و 5 را تغییر می‌دهد. ما می‌توانیم با استفاده از بیان ساده‌تری از جومو به همان کار دست یابیم، اما این تکنیک در مواردی که به عنوان مثال دیگر کتابخانه‌ها به مراجعه به نودهای DOM خالص نیاز دارند، بسیار مفید است.

برای جومو 1.4، روش .not() می‌تواند یک تابع را به عنوان پارامتر خود استفاده کند، که مشابه روش .filter() است. عناصر که تابع بازمی‌گرداند true، از مجموعه فیلتر شده حذف می‌شوند؛ تمام عناصر دیگر در آن شامل می‌شوند.