درس بیست و یک : اصلاح عناصر یک مجموعه عنصر انتخاب شده

در درس قبل مشاهده کردید که از تابع add() و با بکارگیری آن در توابع زنجیره ای ، توانستیم عناصر جدید به مجموعه عناصر انتخاب شده اضافه کنیم . عکس این عمل را نیز می توانید با استفاده از متد not() و در توابع زنجیره ای انجام داد . این متد عملکردی شبیه فیلتر not : که چندی پیش توضیح دادیم ، دارد . اما با این تفاوت که بکارگیری آن مانند متد add() می باشد و می توان در هر جایی از زنجیره آن را استفاده کرد تا عناصر مورد نظر را از مجموعه ی انتخاب شده حذف کنیم .
حالا فرض کنید می خواهیم تمام عناصر عکسی را که دارای خصوصیت title میباشند به استثنای آن مواردی که از واژه ی puppy در مقدار مربوط به این صفت استفاده کرده اند ، انتخاب کنیم . این کار را به سادگی و با استفاده از دستوری مانند
[img[title]:not(title*=puppy)] می توان انجاد داد. اما برای آن که مثالی از چگونگی کار متد not() ببینید این کار را به شکل زیر انجام می دهیم :

 

این دستور تمام عکس های دارای خصوصیت title را به استثنای title هایی که با مقدار puppy در آن ها انتخاب مب کند .
با نوشتن این کد در صفحه کارگاهی chapter2 مشاهده خواهید کرد که تنها عکس دوم انتخاب می شود و عکس چهارم که آن عکس نیز دارای صفت title می باشد انتخاب نمی شود . زیرا در مقدار مربوط به title آن عبارت puppy نوشته شده است .

ابتدا یک کپی از مجموعه عناصر انتخاب شده میگیرد ، سپس از آن کپی عناصری را که expression مشخص می کند حذف می نماید . Not(expression)
این پارامتر تعیین کننده ی عناصر در نظر گرفته شده برای حذف می باشد . این پارامتر می تواند یک عنصر ، آرایه ای از عناصر ، انتخاب کننده و یک تابع باشد .

اگر این پارامتر تابع باشد ، تک تک عناصر مجموعه به آن ارسال می شوند و هر یک که خروجی تابع را برابر با مقدار true کند ، حذف می شود .

پارامتر
یک کپی از مجموعه عناصر انتخاب شده ، بدون عناصر حذف شده . خروجی

متد not() نیز این توانایی را دارد تا مستقیما یک عنصر با آرایه از عناصر را از مجموعه عناصر انتخاب شده حذف نماید .
زمانی که به دنبال حداکثر انعطاف و قدرت برای حذف عناصر از مجموعه می باشیم ، استفاده از تابع به عنوان پارامتر متد not () بسیار مفید می باشد .
مثال زیر را در نظر بگیرید ، در این مثال ابتدا تمام عناصر عکس انتخاب می شوند ، سپس هر یک که فاقد کلاس keepMe باشند ، از جمع مجموعه کنارگذاشته می شود .

 

اگر در شرایطی خاص با حالتی روبرو شدید که احساس کردید عکس این انتخاب برای شما کارایی دارد ، باز می توانید از یکی دیگر از متد های jQUery استفاده کنید . متد filter() عملکردی مشابه با متد not() دارد با این تفاوت که عناصری از مجموعه حذف می شوند که خروجی تابع را false کنند.
فرض کنید می خوایم تمام عناصر <td> که دارای یک عنصر عددی می باشند را انتخاب کنیم . با وجود قدرت فوق العاده ای که انتخاب کننده های jQuery به ما ارایه می دهند ، انجام چنین کاری با استفاده از انتخاب کننده ها غیر ممکن است . در این حالت از متد filter() به شکل زیر استفاده می کنیم :

 

دستور بالا یک مجموعه از تمام عناصر <td> انتخاب می کند ، سپس تک تک عناصر مجموعه ی انتخاب شده را به تابعی که پارامتر متد filter() می باشد ، ارسال می کند. این تابع با استفاده از عبارات منظم مقدار کنونی را می سنجد. اگر این مقدار یک زنجیره ای از ارقام بود ، خروجی تابعtrue خواهد بود و آن عنصر از مجموعه حذف نمی شود ، اما اگر این مقدار عددی نبود خروجی تابع false و عنصر از مجموعه کنار گذاشته می شود .

ابتدا یک کپی از مجموعه عناصر انتخاب شده میگیرد ، سپس از آن کپی عناصری را که expression مشخص می کند حذف می نماید . Filter(expression)
این پارامتر تعیین کننده عناصر در نظر گرفته شده برای حذف می باشد .این پارامتر می تواند یک عنصر ، آرایه ای از عناصر ، انتخاب کننده و یا یک تابع باشد .

اگر این پارامتر تابع باشد ، تک تک عناصر مجموعه به آن ارسال می شوند و هر یک که خروجی تابع را برابر با مقدار false کند ، از مجموعه حذف می شود .

پارامتر
یک کپی از مجموعه ی عناصر انتخاب شده بدون عناصر حذف شده . خروجی

تمرین :


صفحه کارگاهی chapter 2 را باز کنید و دستور قبل را در آن اجرا کنید . همان طور که خواهید دید خانه های مربوط به ستون Invented ، تنها خانه های انتخاب شده می باشند .

دانلود صفحه کارگاهی
پسورد : csharpoop.com

پیش نمایش آنلاین

درس بیست و یک : اصلاح عناصر یک مجموعه عنصر انتخاب شده
۵ (۱۰۰%) ۲ رایs

(416 نوشته)

C# Programmer , Web Design And Developer , MVC , ASP.NET

فکر شما چیست؟

آدرس ایمیل شما منتشر نخواهد شد. بخشهای موردنیاز علامتگذاری شدهاند *

حاصل جمع اعداد را وارد کنید : *