جابجایی jQuery - روش map()
مثال
لیست تمامی مقادیر فرم را میسازد:
$("p").append($("input").map(function(){} بازگرداندن $(this).val(); ).get().join(", ") );
تعریف و کاربرد
map() هر عنصر را از طریق یک تابع به مجموعهی فعلی انتقال میدهد و یک شیء جومری جدید شامل مقادیر بازگردانده شده ایجاد میکند.
جملات گرامری
.map(callback(index,domElement))
پارامترها | شرح |
---|---|
callback(index,domElement) | تابعی که برای هر عنصر در مجموعه فعلی فراخوانی میشود. |
شرح دقیق
چون مقادیر بازگردانده شده توسط جومری یک آرایهی بسته هستند، از get() برای پردازش شیء بازگردانده شده استفاده میکنیم تا آرایهی پایهی آن را دریافت کنیم.
.map() روشی بسیار مفید برای دریافت یا تنظیم مقادیر مجموعهی عناصر است. به این فکر کنید که یک فرم با مجموعهای از چک باکسها داریم:
<form method="post" action=""> <fieldset> <div> <label for="two">2</label> <input type="checkbox" value="2" id="two" name="number[]"> </div> <div> <label for="four">4</label> <input type="checkbox" value="4" id="four" name="number[]"> </div> <div> <label for="six">6</label> <input type="checkbox" value="6" id="six" name="number[]"> </div> <div> <label for="eight">8</label> <input type="checkbox" value="8" id="eight" name="number[]"> </div> </fieldset> </form>
ما میتوانیم لیست جدا شده از IDهای چک باvirgول دریافت کنیم:
$(':checkbox').map(function() { بازگرداندن این.id; ).get().join(',');
شما میتوانید شخصاً امتحان کنید
نتیجهی این فراخوانی یک رشته است: "two,four,six,eight".
در داخل تابع callback، متغیر this به هر عنصر DOM در هر تکرار اشاره دارد. این تابع میتواند یک دادهی مجزا یا یک آرایهی دادههایی که قرار است به مجموعهی نتیجه اضافه شوند را بازگرداند. اگر آرایهای بازگردانده شود، عناصر آرایه به مجموعه اضافه خواهند شد. اگر تابع null یا undefined بازگرداند، هیچ عنصری اضافه نخواهد شد.