📞

مرجع انتخاب گرها (Selectors) در JQuery

8 / 10
از 6 کاربر
بازگشت به لیست مقالات » | یکشنبه 19 مهر 1405 در ساعت 9 و 47 دقیقه | نظرات کاربران ( 0 )

انتخاب گرهای jQuery؛ راهنمای کامل سلکتورها و کاربرد آن ها

💡مقدمه ای برای انتخاب عناصر صفحه
انتخاب گرها یا Selector ها بخش مهمی از کار با jQuery هستند. هرگاه بخواهید یک دستور را روی بخشی از صفحه وب اجرا کنید، ابتدا باید عنصر یا مجموعه ای از عناصر مورد نظر را مشخص کنید. انتخاب گرها این امکان را می دهند که عناصر را بر اساس نام تگ، کلاس، شناسه، ویژگی یا موقعیت آن ها در ساختار صفحه پیدا کنید.
🔎مبنای انتخاب گرها
Selector ها قسمت مهم کار با jQuery هستند. برای اینکه مشخص کنید دستور jQuery روی چه عنصری از صفحه وب اعمال شود، باید از انتخاب گرها در جی کوئری استفاده کنید. ساختار بسیاری از این الگوها با انتخاب گرهای CSS آشناست؛ بنابراین اگر با CSS کار کرده باشید، خواندن و نوشتن سلکتورهای jQuery برایتان ساده تر خواهد بود.
⭐یک نکته درباره سازگاری
سلکتورهای jQuery در بسیاری از موارد از قواعد انتخاب گرهای CSS پیروی می کنند، اما این دو کاملا یکسان نیستند. پشتیبانی از بعضی انتخاب گرها به نسخه jQuery، مرورگر و نوع پروژه بستگی دارد. در پروژه های جدید بهتر است رفتار انتخاب گر را با نسخه مورد استفاده خود بررسی کنید و برای شبه کلاس هایی که فقط در CSS کاربرد دارند، تفاوت میان انتخاب عنصر و استایل دهی را در نظر بگیرید.

جدول مرجع انتخاب گرهای jQuery

📚چطور از جدول استفاده کنیم؟
در جدول زیر، الگوی انتخاب گر، یک نمونه و توضیح عملکرد آن را می بینید. نمونه ها داخل تگ code آمده اند تا نشانه هایی مانند نقطه، کروشه و دونقطه به درستی نمایش داده شوند. برای استفاده در jQuery، معمولا رشته انتخاب گر را به تابع $() می دهید.
انتخاب گر مثال شرح مثال
.class .intro هر عنصری را انتخاب می کند که کلاس intro داشته باشد.
#id #firstname عنصری را انتخاب می کند که شناسه آن firstname باشد.
همه عناصر موجود در محدوده انتخاب را در نظر می گیرد.
element p تمام تگ های p را انتخاب می کند.
element,element div, p تمام عناصر div و p را با هم انتخاب می کند.
element element div p تمام تگ های p درون هر div را انتخاب می کند؛ وجود عنصر واسطه مانعی ندارد.
element > element div > p تگ های p را انتخاب می کند که فرزند مستقیم div باشند.
element + element div + p تگ p مجاور و بلافاصله پس از div را انتخاب می کند.
[attribute] [target] عناصری را انتخاب می کند که ویژگی target داشته باشند.
[attribute=value] [target="_blank"] عناصری را انتخاب می کند که مقدار ویژگی target آن ها دقیقا _blank باشد.
[attribute~=value] [title~="flower"] عناصری را انتخاب می کند که مقدار ویژگی آن ها شامل واژه مستقل flower باشد.
[attribute|=value] [lang|="en"] عناصری را پیدا می کند که مقدار ویژگی با en یا en- شروع شده باشد.
:link a:link پیوندهایی را انتخاب می کند که هنوز بازدید نشده اند؛ این شبه کلاس عمدتا برای استایل دهی CSS شناخته می شود.
:visited a:visited پیوندهای بازدید شده را در انتخاب گرهای CSS مشخص می کند.
:active a:active پیوندی را مشخص می کند که هنگام فشردن دکمه ماوس فعال است.
:hover a:hover عنصری را مشخص می کند که نشانگر ماوس روی آن قرار گرفته است.
:focus input:focus عنصری مانند input را انتخاب می کند که در حال حاضر فوکوس صفحه کلید را دارد.
::first-letter p::first-letter اولین حرف متن هر پاراگراف را برای استایل دهی CSS هدف قرار می دهد.
::first-line p::first-line خط نخست پاراگراف را برای استایل دهی CSS مشخص می کند.
:first-child p:first-child تگ p را انتخاب می کند اگر نخستین فرزند والد خود باشد.
::before p::before در CSS برای افزودن محتوای تولیدشده پیش از محتوای عنصر به کار می رود.
::after p::after در CSS برای افزودن محتوای تولیدشده پس از محتوای عنصر استفاده می شود.
:lang(language) p:lang(it) عنصرهایی را که زبان تعیین شده آن ها با مقدار مشخص شده هماهنگ است هدف قرار می دهد.
element1 ~ element2 p ~ ul عنصرهای ul هم سطحی را انتخاب می کند که پس از p آمده اند؛ لازم نیست بلافاصله مجاور باشند.
[attribute^=value] a[src^="https"] عنصرهای a را انتخاب می کند که مقدار src آن ها با https شروع می شود.
[attribute$=value] a[src$=".pdf"] عنصرهای a را انتخاب می کند که مقدار src آن ها با پسوند .pdf تمام می شود.
[attribute=value] a[src="pars-soft.ir"] عنصرهای a را انتخاب می کند که مقدار src آن ها بخشی از متن مشخص شده را در بر دارد.
:first-of-type p:first-of-type نخستین عنصر p را در میان فرزندان هم نوع خود انتخاب می کند.
:last-of-type p:last-of-type آخرین عنصر p را در میان فرزندان هم نوع خود انتخاب می کند.
:only-of-type p:only-of-type عنصر p را انتخاب می کند اگر تنها عنصر از نوع p در میان هم سطح های خود باشد.
:only-child p:only-child عنصر p را انتخاب می کند اگر تنها فرزند والد خود باشد.
:nth-child(n) p:nth-child(2) عنصر p را انتخاب می کند اگر دومین فرزند والد باشد؛ شمارش از فرزندان همه نوع ها انجام می شود.
:nth-last-child(n) p:nth-last-child(2) عنصر p را انتخاب می کند اگر از انتهای فهرست، دومین فرزند والد باشد.
:nth-of-type(n) p:nth-of-type(2) دومین عنصر p را در میان عنصرهای p هم نوع و هم سطح انتخاب می کند.
:nth-last-of-type(n) p:nth-last-of-type(2) عنصر p را انتخاب می کند که از انتهای فهرست p های هم سطح، دومین مورد است.
:last-child p:last-child عنصر p را انتخاب می کند اگر آخرین فرزند والد خود باشد.
:root :root عنصر ریشه سند را هدف قرار می دهد؛ در سند HTML، این عنصر معمولا html است.
:empty p:empty عنصر p را انتخاب می کند که فرزند یا محتوای متنی نداشته باشد.
:target #news:target عنصری را انتخاب می کند که شناسه آن با بخش مقصد فعلی نشانی صفحه مطابقت دارد.
:enabled input:enabled عنصر ورودی فعال و قابل استفاده را انتخاب می کند.
:disabled input:disabled عنصر ورودی غیرفعال را انتخاب می کند.
:checked input:checked گزینه انتخاب شده در کنترل هایی مانند radio و checkbox را پیدا می کند.
:not(selector) :not(p) عناصری را انتخاب می کند که با انتخاب گر داخل پرانتز مطابقت نداشته باشند.
::selection ::selection بخش متنی را هدف قرار می دهد که کاربر با ماوس یا صفحه کلید انتخاب کرده است؛ کاربرد اصلی آن در CSS است.

دسته بندی انتخاب گرها و شیوه استفاده

انتخاب بر اساس کلاس، شناسه و نام تگ

🧩سه راه پرکاربرد برای شروع
برای پیدا کردن عناصر صفحه، معمولا از کلاس، شناسه یا نام تگ استفاده می شود. کلاس با نقطه و شناسه با علامت # نوشته می شود، اما نام تگ بدون پیشوند می آید. انتخاب کلاس برای گروهی از عناصر مناسب است؛ شناسه باید در صفحه یکتا باشد و انتخاب بر اساس نام تگ تمام نمونه های همان تگ را پیدا می کند. ترکیب این الگوها می تواند دامنه انتخاب را دقیق تر کند.
📌
برای نمونه، عبارت $(".intro") همه عناصر دارای کلاس intro را انتخاب می کند. عبارت $("#firstname") عنصر دارای شناسه firstname را پیدا می کند و $("p") تمام پاراگراف های صفحه را برمی گرداند. انتخاب گر ترکیبی مانند $("div.intro") نیز فقط div هایی را برمی گزیند که کلاس intro دارند.

انتخاب بر اساس رابطه میان عناصر

🧭پیدا کردن فرزند و هم سطح
فاصله میان نام دو عنصر، نوع رابطه آن ها را مشخص می کند. در div p همه پاراگراف های داخل div انتخاب می شوند، حتی اگر میان آن ها عنصرهای دیگری قرار داشته باشد. علامت بزرگ تر در div > p انتخاب را به فرزند مستقیم محدود می کند. علامت + برای عنصر مجاور بعدی و ~ برای عنصرهای هم سطح بعدی کاربرد دارد.

انتخاب بر اساس ویژگی و وضعیت عنصر

⚙️فیلتر کردن عناصر دقیق تر
انتخاب گرهای ویژگی برای فرم ها، پیوندها و محتوای دارای نشانه های مشخص کاربرد زیادی دارند. برای مثال، $("[href]") عناصر دارای href را پیدا می کند و $('a[href$=".pdf"]') پیوندهایی را برمی گزیند که نشانی آن ها به pdf ختم می شود. در فرم ها نیز وضعیت هایی مانند فعال، غیرفعال یا انتخاب شده بودن کنترل را می توان هدف قرار داد.

نمونه های عملی در jQuery

💻اعمال تغییر روی عناصر انتخاب شده
پس از مشخص کردن عنصر، می توانید یک متد jQuery را روی نتیجه اجرا کنید. برای مثال، انتخاب پاراگراف ها و افزودن کلاس به آن ها به شکل زیر است:
$("p").addClass("highlight");
📝انتخاب گزینه فرم
در نمونه زیر، انتخاب گر به جای بررسی تک تک کنترل ها، گزینه های انتخاب شده را پیدا می کند. این الگو برای خواندن وضعیت فرم یا تغییر ظاهر گزینه انتخاب شده مفید است.
$("input:checked").each(function () {
  console.log(this.value);
});

۵ نکته مهم برای انتخاب سلکتور مناسب

1
تا جای ممکن دقیق انتخاب کنید: انتخاب گر دقیق از هدف قرار گرفتن ناخواسته عناصر دیگر جلوگیری می کند. اگر کلاس مشترکی میان بخش های مختلف صفحه وجود دارد، محدوده والد را نیز به انتخاب گر اضافه کنید.
2
از شناسه یکتا درست استفاده کنید: شناسه برای پیدا کردن یک عنصر مشخص مناسب است. تکرار یک id در چند عنصر می تواند انتخاب را مبهم کند؛ برای گروهی از عناصر، کلاس انتخاب مناسب تری است.
3
فاصله و نشانه ها را بررسی کنید: تفاوت میان فاصله، علامت بزرگ تر، + و ~ در نتیجه انتخاب اثر دارد. پیش از اجرای دستور مطمئن شوید رابطه والد، فرزند یا هم سطح را درست نوشته اید.
4
سازگاری نسخه را بسنجید: برخی شبه کلاس ها و انتخاب گرهای توسعه یافته در همه نسخه ها یا همه محیط ها یکسان پشتیبانی نمی شوند. در پروژه واقعی، مستندات نسخه jQuery و مرورگرهای هدف را بررسی کنید.
5
نتیجه را در ابزار توسعه آزمایش کنید: اگر انتخاب گر عنصری را پیدا نکرد، ساختار HTML، املای کلاس یا شناسه و زمان اجرای کد را بررسی کنید. ابزارهای توسعه مرورگر به پیدا کردن خطاهای نوشتاری کمک می کنند.

خطاهای رایج هنگام استفاده از انتخاب گرهای jQuery

⚠️اشتباه در نشانه گذاری
یکی از خطاهای متداول، فراموش کردن نقطه پیش از کلاس یا # پیش از شناسه است. برای مثال، نوشتن intro با .intro یکسان نیست؛ اولی تگ هایی با نام intro را هدف قرار می دهد، اما دومی عناصر دارای کلاس intro را پیدا می کند.
⏱️اجرای کد پیش از آماده شدن صفحه
اگر کد پیش از بارگذاری عناصر اجرا شود، انتخاب گر ممکن است نتیجه ای پیدا نکند. برای اطمینان از آماده بودن ساختار صفحه می توان کد را داخل رویداد آماده شدن سند قرار داد. همچنین لازم است مطمئن شوید فایل jQuery پیش از اسکریپتی که به آن وابسته است بارگذاری شده باشد.
$(document).ready(function () {
  $(".intro").addClass("ready");
});
🛠️اشکال زدایی مرحله به مرحله
برای عیب یابی، ابتدا مقدار برگشتی از انتخاب گر را بررسی کنید و ببینید چند عنصر پیدا شده است. سپس بخش های انتخاب گر را جداگانه آزمایش کنید؛ برای مثال، اول نام تگ و بعد کلاس یا ویژگی را اضافه کنید. اگر صفحه به صورت پویا ساخته می شود، ممکن است لازم باشد انتخاب عناصر پس از ایجاد آن ها انجام شود یا از روش های مناسب رویداددهی برای محتوای پویا استفاده کنید.

انتخاب گرهای jQuery در پروژه های طراحی سایت

🌱پیوند میان ساختار، ظاهر و رفتار
در فرایند طراحی سایت، انتخاب گرها برای تعامل با منوها، فرم ها، پیام های راهنما و بخش های تعاملی کاربرد دارند. انتخاب دقیق باعث می شود تغییرات فقط روی بخش مورد نظر اثر بگذارد و نگهداری کد آسان تر شود. انتخاب گرهای CSS بیشتر برای ظاهر عناصر استفاده می شوند، در حالی که انتخاب گرهای jQuery به برنامه نویس کمک می کنند عناصر را برای اجرای رفتارهایی مانند افزودن کلاس، تغییر محتوا یا واکنش به رویداد پیدا کند.
📈خوانایی و کارایی کد
انتخاب گرهای بسیار پیچیده، هم خواندن کد را سخت می کنند و هم می توانند نگهداری پروژه را دشوار سازند. بهتر است ساختار HTML با کلاس های روشن و هدفمند طراحی شود و انتخاب گرها بر اساس همان ساختار نوشته شوند. در بخش هایی که بارها به آن ها نیاز دارید، تعریف کلاس های کاربردی و محدود کردن جستجو به والد مناسب می تواند از انتخاب های گسترده و ناخواسته جلوگیری کند.

جمع بندی انتخاب گرهای jQuery

✅انتخاب آگاهانه برای کدنویسی بهتر
انتخاب گرها مشخص می کنند کدام عناصر صفحه تحت تاثیر دستورهای jQuery قرار بگیرند. با شناخت تفاوت کلاس، شناسه، نام تگ، رابطه عناصر و ویژگی ها می توانید هدف هر دستور را دقیق تعیین کنید. برای نتیجه بهتر، نمونه ها را در پروژه خود آزمایش کنید، سازگاری نسخه را بررسی کنید و کدی خوانا و قابل نگهداری بنویسید. این اصول، استفاده درست از انتخاب گرهای jQuery را در پروژه های گوناگون ساده تر می کند.

سوالات متداول انتخاب گرهای jQuery

انتخاب گر در jQuery چیست؟

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

تفاوت انتخاب گر کلاس و شناسه چیست؟

برای انتخاب کلاس از نقطه استفاده می شود؛ برای نمونه، .item. برای انتخاب شناسه از علامت # استفاده می شود؛ مانند #menu. کلاس می تواند میان چند عنصر مشترک باشد، اما شناسه بهتر است در صفحه یکتا باشد.

تفاوت فاصله و علامت بزرگ تر در انتخاب گر چیست؟

فاصله همه نوادگان یک عنصر را انتخاب می کند، اما علامت بزرگ تر فقط فرزندهای مستقیم را هدف قرار می دهد. برای مثال، div p همه پاراگراف های درون div را پیدا می کند و div > p فقط پاراگراف های فرزند مستقیم را انتخاب می کند.

چرا انتخاب گر jQuery عنصری را پیدا نمی کند؟

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

آیا همه انتخاب گرهای CSS در jQuery قابل استفاده هستند؟

بسیاری از انتخاب گرهای رایج CSS در jQuery قابل استفاده اند، اما پشتیبانی بعضی شبه کلاس ها یا انتخاب گرهای خاص به نسخه و محیط اجرا وابسته است. برای پروژه های واقعی، مستندات نسخه مورد استفاده را بررسی کنید و میان انتخاب عنصر در jQuery و استایل دهی CSS تفاوت بگذارید.

ارسال نظر و نظرات ثبت شده
سایر مقالات
توابع کاربردی متفرقه در JQuery توابع کاربردی متفرقه در JQuery در این بخش از آموزش JQuery  به معرفی مهمترین و پ ...
مرجع توابع کار با Ajax در JQuery مرجع توابع کار با Ajax در JQuery در بخش آموزش Ajax توضیح مفصلی از کاربردهای Ajax دادیم ، Ajax تکنول ...
مرجع توابع کار با Html و Css در JQuery مرجع توابع کار با Html و Css در JQuery در این بخش از آموزش JQuery  به معرفی مهم ...
مرجع افکت ها (Effeccts) در JQuery افکت ها در jQuery چیستند و چه کاربردی دارند؟ 💡 آشنایی با افکت های jQuery افکت ها در jQuer ...
مرجع رویدادها (Events) در JQuery رویدادهای jQuery چیست؟ راهنمای کاربرد و مدیریت رویدادها 💡آشنایی با رویدادها در این بخش از آ ...
مرجع انتخاب گرها (Selectors) در JQuery انتخاب گرهای jQuery؛ راهنمای کامل سلکتورها و کاربرد آن ها 💡مقدمه ای برای انتخاب عناصر صفحه ...
⏳ در حال پردازش...
لطفا صبر کنید