فهرست سرفصل‌های jQuery
jQuery

jQuery — متفرقه (Misc Reference)

آخرین بروزرسانی: 1404/08/28

متفرقه (Misc Reference)

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

متدهای متفرقه jQuery دقیقا چه کار می کنند؟

این جدول چند متد مهم متفرقه jQuery را لیست کرده است. هر متد یک نقش کوچک اما مهم دارد. بعضی متدها روی داده اضافی عنصر کار می کنند، بعضی روی مجموعه انتخاب شده، و بعضی روی تنظیمات کلی مثل استفاده از علامت دلار.

مدیریت داده اضافی با data و removeData

متد data() برای وصل کردن داده اضافی به یک عنصر است. همین طور می تواند همان داده را برگرداند. مثلا می توانی برای هر ردیف جدول، یک کد داخلی ذخیره کنی. متد removeData() هم این داده ذخیره شده را پاک می کند.

  • data(): داده را به عنصر وصل می کند یا برمی گرداند.
  • removeData(): یک داده ذخیره شده را حذف می کند.

نکته: این داده ها در خود DOM قابل دیدن نیستند؛ فقط از طریق jQuery استفاده می شوند و برای منطق داخلی صفحه خیلی کمک می کنند.

کار با مجموعه عناصر: each، get، index و toArray

چند متد دیگر روی مجموعه عناصر انتخاب شده کار می کنند. این مجموعه نتیجه انتخاب با jQuery است.

  • each(): یک تابع را برای هر عنصر اجرا می کند.
  • get(): خود عنصرهای DOM را از مجموعه jQuery برمی گرداند.
  • index(): جای یک عنصر را در بین مجموعه پیدا می کند.
  • toArray(): همه عناصر DOM را به صورت آرایه برمی گرداند.

مثلا در لیست دانش آموزان می توانی با each() روی هر ردیف حلقه بزنی. سپس با index() جای هر ردیف را بفهمی. اگر لازم شد عناصر را به یک آرایه معمولی بدهی، از toArray() کمک بگیر.

تنظیمات عمومی: $.noConflict و $.param

در متفرقه jQuery دو متد مهم روی خود jQuery تعریف شده اند.

  • $.noConflict(): کنترل علامت $ را آزاد می کند.
  • $.param(): از یک آرایه یا آبجکت، رشته querystring می سازد.

وقتی یک کتابخانه دیگر هم از $ استفاده می کند، با $.noConflict() تعارض حل می شود. همچنین هنگام ساخت URL برای درخواست های AJAX، $.param() کمک می کند داده ها را به شکل رشته مناسب تبدیل کنی.

مثال ساده با متدهای متفرقه jQuery

در این مثال برای هر آیتم لیست یک شماره ترتیب ذخیره می کنیم. سپس همان اعداد را به querystring تبدیل می کنیم.

var orders = [];
$("#students li").each(function(index) {
  $(this).data("order", index);
  orders.push(index);
});
var query = $.param({
  orders: orders
});
$("#result").text(query);

مشاهده در ادیتور

در این کد، each() روی همه آیتم های لیست اجرا می شود. با data() شماره ترتیب در هر عنصر ذخیره شده است. سپس آرایه orders را به $.param() می دهیم تا رشته querystring ساخته شود. در آخر، نتیجه را داخل یک عنصر با شناسه result نمایش می دهیم.

گام های تمرین با متدهای متفرقه jQuery

برای تمرین این متدهای متفرقه jQuery می توانی این کارها را انجام دهی.

  1. یک لیست ساده از آیتم ها در صفحه بساز.
  2. با each() برای هر آیتم یک عدد مرتب ذخیره کن.
  3. با toArray() یا get() عناصر را به آرایه تبدیل کن و در کنسول بررسی کن.

هشدار: متد size() طبق رفرنس در نسخه 3 jQuery حذف شده است. به جای آن باید از ویژگی length استفاده کنی تا شمارش عناصر درست انجام شود.

ارتباط متفرقه با بقیه رفرنس های jQuery

متدهای این صفحه معمولا همراه بقیه بخش ها استفاده می شوند. مثلا ترکیب data() با متدهای HTML/CSS (HTML/CSS Reference) برای ساخت رابط های پویا عالی است.

همچنین وقتی با AJAX کار می کنی، متد $.param() کنار متدهای صفحه AJAX (AJAX Reference) کمک می کند URLهای تمیز و قابل خواندن بسازی.

جمع بندی سریع

  • متدهای متفرقه jQuery ابزارهای کوچک اما بسیار کاربردی هستند.
  • data() و removeData() برای ذخیره و حذف داده اضافی عنصرند.
  • each()، get() و toArray() روی مجموعه عناصر کار می کنند.
  • $.noConflict() تعارض روی علامت $ را حل می کند.
  • متد $.param() داده ها را به رشته querystring تبدیل می کند.