انتخاب گر ها در جیکوئری
انتخاب گر ها در جیکوئری ( Jquery )
سلام دوستان با قسمت چهارم بخش اول برگشتیم.
این قسمت کمی طولانی هستش امیدواریم با حوصله این بخش رو مطالعه کنید.
برای این که قابل فهم تر باشه پیشنهاد میکنیم دو دو قسمت این بخش رو به پایان برسونید.
سلکتور برای انتخاب کردن المان ها (جهت اعمال کد) در جیکوئری بکار میرود. برای انتخاب یه عنصر HTML به صورت مستقیم میتوانیم آن را فراخوانی کنیم.
انتخاب همه عناصر (*)
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$(*).hide()</span>
با کد زیر میتوانید همه عناصر صفحه رو فراخوانی کنید.در این مثال همه عناصر با کلیک شدن ، hide میشوند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$(document).ready(function(){ $("*").click(function(){ $(this).hide(); }); });</span>
انتخاب عناصر در حال حرکت (animated)
با کد زیر میتوانیم عناصری را که درحال حرکت هستند را انتخاب کنیم:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("div:animated").hide()</span>
انتخاب عناصر با خصوصیت دلخواه
برای انتخاب عناصر بر اساس خصوصیت ها از کد زیر استفاده میکنیم.
مثلا کد زیر لینک هایی که خاصیت href آنها با عبارت http شروع شود را hide میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('a[href^="http"]').hide()</span>
کد زیر لینک هایی که خاصیت hreflang آنها en باشد یا با -en شروع شوند را hide میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('a[hreflang|="en"]').hide()</span>
کد زیر عکسهایی را که خاصیت Alt آنها برابر با programchi.ir باشد را hide میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('img[alt*="<a style="color: #000000;" href="http://programchi.ir">programchi.ir</a>"]').hide()</span>
کد زیر عکسهایی را که شامل کلمه programchi.ir باشند را انتخاب میکند و hide میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('img[alt~="www.pars-soft.ir"]').hide()</span>
کد زیر همه لینکهایی که خصوصیت href آنها با کلمه”html” تموم میشود را انتخاب میکند و hide میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('a[href$="html"]').hide()</span>
کد زیر فقط div هایی را که خصوصیت کلاس آنها myclass باشد را انتخاب میکند و hide میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('div[class="myclass"]').hide()</span>
کد زیر فقط div هایی را که خصوصیت کلاس آنها myclass نباشد را انتخاب میکند و hide میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('div[class!="myclass"]').hide()</span>
انتخاب دکمه ها
کد زیر به همه button ها حاشیه 3 پیکسلی میدهد . در این کد نحوه اعمال یک کد CSS به یک عنصر را می ببینید.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$(":button").css({"border":"3px black solid"});</span>
انتخاب چکباکس ها
کد زیر به همه چکباکس ها حاشیه 3 پیکسلی میدهد .
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$(":checkbox").css({"border":"3px black solid"});</span>
اگه بخوایم این نوع کدها فقط در محدوده یک عنصر خاص کار کنند ، به راحتی میتوانیم از اسم کلاسها ، IDها یا تگ ها استفاده کنیم:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("#container .leftColumn input:checkbox").css({border:"3px black solid"});</span>
انتخاب Input های از نوع File
برای انتخاب Input هایی که خصوصیت type آن ها مقدار file دارد و برای انتخاب یک فایل جهت آپلود در سایت استفاده میشوند :
1 <span style="font-size: 12pt; font-family: iransans; color: #000000;">$("input:file").css({border:"3px black solid"});</span>
انتخاب عنصرهای check شده
این سلکتور checkbox ها و radio هایی را که تیک خورده اند (انتخاب شده اند) را انتخاب میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("input:checked").css({"border":"3px black solid"});</span>
در کد زیر با انتخاب هر دکمه رادیویی موجود در صفحه ، مقدار value آن ، در یک عنصر جدید که کلاس .log دارد ، نمایش داده میشود :
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("input").click(function(){ $(".log").html( $(":checked").val() + " is checked!" ); });</span>
انتخاب عناصر فرزند
درست مثل CSS میتوانیم در jQuery هم ، عناصر فرزند رو فراخوانی کنیم :
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("ul.class1 > li").css({border:"3px black solid"});</span>
انتخاب بر اساس محتوا
با کد contains میتوانیم عنصری که متن خاصی داخلش وجود دارد را انتخاب کنیم.
کد زیر هر پاراگرافی که کلمه programchi.ir داخلش باشد را نارنجی میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("p:contains('programchi.ir')").css("color", "orange");</span>
انتخاب عنصرهای غیرفعال (disabled)
کد زیر کلمه “DISABLED” را در همه input هایی که غیرفعال شدند مینویسد:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("input:disabled").val("DISABLED");</span>
انتخاب عنصرهای فعال (enabled)
کد زیر برای همه input هایی که فعال هستند حاشیه قرمز میگذارد:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("input:enabled").css("border":"1px solid red");</span>
انتخاب عناصر خالی
برای عناصری که هیچ متن یا تگی داخلشان نباشد. مثل تگ های زیر:
123 <span style="font-family: iransans; font-size: 12pt; color: #000000;"><a></a><li></li><td></td></span>
کد زیر همه تگهای خالی که داخل تگ body باشند را انتخاب میکند ، متن Empty Tag را داخلشان مینویسد و رنگ پیش زمینه آنها را قرمز میکند :
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("body :empty").text("Empty Tag").css('background','red');</span>
انتخاب بر اساس اندیس
با استفاده از eq میتوانیم از بین تعدادی عنصر یکسان ، عنصری با شماره خاص رو انتخاب کنیم.
اگه یه لیست با 3 تا li داشته باشیم ، شماره اندیس این سها li از 0 تا 2 هست (شمارش اندیسها از 0 شروع میشه)
برای انتخاب عنصر اول:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("li:eq(0)").css("color","blue" );</span>
برای انتخاب عنصر دوم:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("li:eq(1)").css("color","blue" );</span>
انتخاب زوج و فرد
کد زیر پاراگرافهای زوج رو آبی میکند:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("p:even").css("color","blue");</span>
کد زیر پاراگرافهای فرد رو قرمز میکند:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("p:odd").css("color","red");</span>
انتخاب چند عنصر
برای انتخاب یه عنصر، از کدزیر استفاده میکنیم :
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$(".myclass1").css("color":"orange");</span>
برای انتخاب چند تا عنصر ، کافیست نام عنصر را به همراه کاما “,” اضافه کنیم :
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$(".myclass1,.myclass2,.myclass3").css("color":"orange");</span>
کد بالا همه عناصری که کلاس myclass1 و myclass2 و myclass3 دارند را انتخاب میکند و رنگشان را به نارنجی تغییر میدهد.
انتخاب عنصر اول
“first” عنصر اول را از بین تعدادی عنصر انتخاب میکند.کد زیر اولین پاراگراف رو انتخاب میکند و border قرمز را به آن میدهد .
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("p:first").css("border":"1px solid red");</span>
انتخاب first-child یا فرزند اول
first-child عنصر فرزند اول را از بین تعدادی عنصر انتخاب میکند. کد زیر اولین پاراگراف داخل تگ div را انتخاب میکند و border قرمز را به آن میدهد .
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("div p:first-child").css("border":"1px solid red");</span>
انتخاب عنصر آخر
“Last” عنصر آخر را از بین تعدادی عنصر انتخاب میکند.کد زیر آخرین پاراگراف را انتخاب میکند و border سبز را به آن میدهد .
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("p:last").css("border":"1px solid green");</span>
انتخاب last-child یا فرزند آخر
first-child عنصر فرزند اول را از بین تعدادی عنصر انتخاب میکند. تقریبا شبیه Last کار میکند.کد زیر آخرین پاراگراف داخل تگ div را انتخاب میکند و border قرمز را به آن میدهد .
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("div p:last-child").css("border":"1px solid green");</span>
انتخاب فرزند n ام
nth-child فرزند n ام را از بین تعدادی عنصر انتخاب میکند. کد زیر سومین پاراگراف داخل تگ div را انتخاب میکند و رنگ متنش را آبی میکند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("div p:nth-child(3)").css("color":"blue");</span>
انتخاب عنصر دارای خصوصیت
با این انتخابگر میشود عناصری را انتخاب کرد که Attribute های خاصی دارند.مثلا با کد زیر همه عکسهایی که خصوصیت Alt داشته باشند را انتخاب میکند و border قرمز را به آن میدهد .
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('img[alt]').css("border":"4px solid red");</span>
منفی کردن انتخابگر با not
هنگامی که میخواهیم نتیجه را برعکس کنیم از این انتخابگر استفاده میکنیم ، کد زیر به چک باکس های تیک خورده border سه پیکسلی میدهد.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("input:checked").css({"border":"3px black solid"});</span>
کد زیر به چک باکس های تیک خورده border سه پیکسلی میدهد ، که با اضافه کردن :not ، چک باکس های تیک نخورده رو انتخاب میکنیم:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("input:not(:checked)").css({"border":"3px black solid"});</span>
gt: انتخاب عناصر بزرگتر
اگه چندتا پاراگراف داشته باشیم و بخواهیم پیش زمینه پاراگراف سوم به بعد را عوض کنیم، میتوانیم از انتخابگر gt (Greater than…) استفاده کنیم:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('p:gt(3)').css("background":"yellow");</span>
کد بالا از بین همه پاراگراف ها، فقط پاراگراف سوم به بعد (4 و 5 و 6 و…) را انتخاب میکند.
lt: انتخاب عناصر کوچیکتر
برای انتخاب عناصر قبل از مورد مشخص شده استفاده میشود :
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$('p:lt(3)').css("background":"orange");</span>
کد بالا از بین همه پاراگراف ها، فقط پاراگرافهای قبل از پاراگراف سوم را انتخاب میکند (پاراگراف 1 و 2)و پیش زمینه آنها را نارنجی مکیند.
انتخاب عناصر تک فرزند “only-child”
ممکنه این جمله رو متوجه نشید:
“اگه عنصری ، تنها عنصرِ عنصر والدِ خودش باشه ، انتخاب میشود”
پس بیشتر توضیح میدم:
اگه داخل عنصر والد ، 2 تا عنصر فرزند داشته باشیم:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;"><ul><li></li><li></li></ul></span>
یعنی ul پدر ، 2تا فرزند li داره ، ولی اگر فقط یک فرزند داشته باشد:
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;"><ul><li></li></ul></span>
سلکتور only-child در جی کوئری ، فقط عناصری را انتخاب میکند که هیچ عنصر مشابهی ، قبل یا بعد آنها وجود نداشته باشد. در کد زیر ، فقط li هایی که تک فرزند باشند ، border آبی میگیرند.
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("ul li:only-child").css("border", "3px solid blue");</span>
انتخاب first-child یا فرزند اول
first-child عنصر فرزند اول را از بین تعدادی عنصر انتخاب میکند. تقریبا شبیه first کار میکند. کد زیر اولین پاراگراف داخل تگ div را انتخاب میکند و border قرمز به آن میدهد .
1 <span style="font-family: iransans; font-size: 12pt; color: #000000;">$("div p:first-child").css("border":"1px solid red")</span>