انتخاب عناصر بر اساس عدم تطابق
مسئله
ما نیاز داریم تا تعدادی از عناصر را که با یک سلکتور خاص تطابق ندارند را انتخاب کنیم.
راه حل
برای انجام این کار، جی کوئری یک فیلتر به نام :not به ما ارائه می دهد که می توانیم به صورت زیر از آن استفاده کنیم:
jQuery('div:not(#content)'); // Select all DIV elements except #content
این فیلتر، تمام عناصر مجموعه ی فعلی(current collection) که با سلکتور مورد نظر تطابق دارند را حذف می کند. هر چقدر لازم داشته باشیم، می توانیم سلکتور را پیچیده تر بگیریم. و لازم نیست حتما یک عبارت ساده باشد، به مثال زیر توجه کنید:
jQuery('a:not(div.important a, a.nav)');
// Selects anchors that do not reside within 'div.important' or have the class 'nav'
نکته: پاس دادن سلکتورهای پیچیده به فیلتر not: تنها در ورژن های 1.3 جی کوئری و بالاتر، قابل استفاده است. در ورژن های قبل از آن تنها می توانیم از عبارت های سلکتورساده استفاده کنیم.
توضیحات
علاوه بر فیلتر not: جی کوئری یک متد دیگر به ما ارائه می دهد که کارکرد مشابهی دارد. این متد، هم سلکتورها را قبول می کند و هم عناصر DOM را. به مثال زیر توجه کنید:
var $anchors = jQuery('a');
$anchors.click(function(){
$anchors.not(this).addClass('not-clicked');
});
بر اساس کدهای بالا، وقتی که بر روی یک عنصر لینک(a) کلیک می شود، همه ی لینک ها به جز لینک مورد نظر دارای کلاس not-clicked می شوند. کلمه ی کلیدی this به عنصر کلیک شده اشاره می کند. متد not() نیز سلکتورها را قبول می کند:
$('#nav a').not('a.active');
این کد، تمام لینک های قرار گرفته در nav# که کلاس active ندارند را انتخاب می کند.
{module کمک نقدی به نویسنده}
- بازدید: 443
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.