آموزش jQuery بخش سوم: سلکتورها

پويا صادقى , jQuery

jquery tutorial3 آموزش jQuery بخش سوم: سلکتورها

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

سلکتور همونطور که از اسمش پیداست برای انتخاب کردن المنت ها (جهت اعمال کد روی اون‌ها) استفاده میشه.

انتخاب چند عنصر
برای انتخاب یه عنصر، از کدی شبیه به این استفاده میکردیم:

$(".myclass1").css("color":"orange");

برای انتخاب چند تا عنصر ، فقط کافیه نام عنصر رو به همراه کاما “,” اضافه کنیم

$(".myclass1,.myclass2,.myclass3").css("color":"orange");

کد بالا همه عناصری که کلاس myclass1 و myclass2 و myclass3 دارن رو انتخاب میکنه و رنگشون رو به نارنجی تغییر میده

انتخاب عنصر اول
“first” عنصر اول رو از بین تعدادی عنصر انتخاب میکنه.
کد زیر اولین پاراگراف رو انتخاب میکنه و border قرمز براش تعیین میکنه

$("p:first").css("border":"1px solid red");

انتخاب first-child یا فرزند اول
first-child عنصر فرزند اول رو از بین تعدادی عنصر انتخاب میکنه. تقریبا شبیه first کار میکنه.
کد زیر اولین پاراگراف داخل تگ div رو انتخاب میکنه و border قرمز براش تعیین میکنه

$("div p:first-child").css("border":"1px solid red");

انتخاب عنصر آخر
“Last” عنصر آخر رو از بین تعدادی عنصر انتخاب میکنه.
کد زیر آخرین پاراگراف رو انتخاب میکنه و border سبز براش تعیین میکنه

$("p:last").css("border":"1px solid green");

انتخاب last-child یا فرزند آخر
first-child عنصر فرزند اول رو از بین تعدادی عنصر انتخاب میکنه. تقریبا شبیه Last کار میکنه.
کد زیر آخرین پاراگراف داخل تگ div رو انتخاب میکنه و border قرمز براش تعیین میکنه

$("div p:last-child").css("border":"1px solid green");

انتخاب فرزند n ام
nth-child فرزند n ام رو از بین تعدادی عنصر انتخاب میکنه. یعنی به جای فرزند اول یا آخر میتونید بهش بگید فرزند سوم یا بیستم و… رو انتخاب کنه
کد زیر سومین پاراگراف داخل تگ div رو انتخاب میکنه و رنگ متنش رو آبی میکنه

$("div p:nth-child(3)").css("color":"blue");

انتخاب عنصر دارای خصوصیت
با این سلکتور میشه عناصری رو انتخاب کرد که Attribute های خاصی دارن.
مثلا با کد زیر همه عکس‌هایی که خصوصیت Alt باشن رو انتخاب میکنه و border قرمز براشون میذاره

$('img[alt]').css("border":"4px solid red");

منفی کردن انتخابگر با not
بعضی وقتا لازمه که نتیجه انتخاب رو برعکس کنیم. مثلا به جای چک باکس های تیک خورده (که در بخش دوم آموزش jQuery درموردش گفتم) ، میخوایم چک باکس های تیک نخورده رو انتخاب کنیم. سلکتور “not” برای اینجور مواقع ساخته شده؛ به جای

$("input:checked").css({"border":"3px black solid"});

که به چک باکس های تیک خورده بوردر سه پیکسلی میده ، با اضافه کردن :not ، چک باکس های تیک نخورده رو انتخاب میکنیم:

$("input:not(:checked)").css({"border":"3px black solid"});

درواقع :not ، کلمه :checked که داخل پرانتز گذاشتیم رو منفی میکنه

gt: انتخاب عناصر بزرگتر
اگه چندتا پاراگراف داشته باشیم و بخوایم بکگراند پاراگراف سوم به بعد رو عوض کنیم، میتونیم از سلکتور gt (Greater than…) استفاده کنیم:

$('p:gt(3)').css("background":"yellow");

کد بالا از بین همه پاراگراف ها، فقط پاراگراف سوم به بعد (4 و 5 و 6 و…) رو انتخاب میکنه

lt: انتخاب عناصر کوچیکتر
مثل مورد قبلی (gt) ولی اینبار برای انتخاب عناصر قبل از مورد مشخص شده:

$('p:lt(3)').css("background":"orange");

کد بالا از بین همه پاراگراف ها، فقط پاراگراف‌های قبل از پاراگراف سوم رو انتخاب میکنه (پاراگراف 1 و 2)و بکگراندشون رو نارنجی مکینه

انتخاب عناصر تک فرزند “only-child”
ممکنه این جمله رو متوجه نشید:
“اگه عنصری ، تنها عنصرِ عنصر والدِ خودش باشه ، انتخاب میشه”
پس بیشتر توضیح میدم:
اگه داخل عنصر والد ، 2 تا عنصر فرزند داشته باشیم:

<ul><li></li><li></li></ul>

یعنی ul پدر ، 2تا فرزند li داره
ولی اگه فقط یه فرزند داشته باشه:

<ul><li></li></ul>

li میشه تنها فرزند ul که برای انتخاب این نوع عناصر در jQuery ، از سلکتور only-child استفاده می‌کنیم. سلکتور only-child در جی کوئری ، فقط عناصری رو انتخاب میکنه که هیچ عنصر مشابهی ، قبل یا بعدشون نداشته باشن
در کد زیر ، فقط li هایی که تک فرزند باشن ، بوردر آبی میگیرن:

$("ul li:only-child").css("border", "3px solid blue");

انتخاب first-child یا فرزند اول
first-child عنصر فرزند اول رو از بین تعدادی عنصر انتخاب میکنه. تقریبا شبیه first کار میکنه.
کد زیر اولین پاراگراف داخل تگ div رو انتخاب میکنه و border قرمز براش تعیین میکنه

$("div p:first-child").css("border":"1px solid red");

 

 

نوشته شده توسط
سلام! من پویا صادقی هستم؛ طراح رابط کاربری و توسعه دهنده وب. می تونید من رو در توییتر دنبال کنید، در گوگل پلاس یا صفحه فیسبوک پاسارگاد گرافیک با من در ارتباط باشید، یا با ایمیل info[‌a‌t‌]Pasargad-Graphic.com تماس بگیرید.

    23 دیدگاه

  1. حسین

    خسته نباشی – ممنون

    پاسخ دهید

  2. علی وب

    خوب بود . ته توی هر چی سلکتور بود تو جی کوئری رو در آوردی دیگه!

    پاسخ دهید

  3. مهدی

    با سلام به آقا پویای گل
    دمت آب جوش
    گل کاشکی
    واقعا کمک کرد
    خدا خیریت بده
    قسمت چهارم هم هست ؟
    کی انشاالله ؟

    پاسخ دهید

    پاسخ پويا صادقى

    معلوم نیست :) هرموقع که وقت کنم!


    پاسخ مهدی

    میگم هر وقت تونستی و لطفا هر چه زود تر بزار . منتظریم .


  4. armin

    ro neveshte haye siteton ke miram – backgroundesh black mishe range neveshtasham avaz mishe – mishe css esh ro bezarid ?-

    پاسخ دهید

    پاسخ پويا صادقى

    ::-moz-selection{ background:#000;color:#fff;}
    ::selection{ background:#000;color:#fff;}

  5. armin

    manzoram az neveshte ha masalan peyvand ha o inast :D
    mesle akharin neveshte haye samte raste site

    پاسخ دهید

    پاسخ پويا صادقى

    باید از hover: استفاده کنید. ( + نمونه )


  6. armin

    nemishe code amadasho bezari ? chize khasi rastesh nafahmidam az matlab :D

    پاسخ دهید

    پاسخ پويا صادقى

    این آموزشه! نمونه نیست که کد آماده داشته باشه.


  7. مهدی

    سلام اقا پویا
    دو تا سوال . من یک ساب دامین ایجاد کردم با ادرس
    blog.mysite.com
    میخوام بدونم چجوری مطالب مورد نظر خودم رو روی این ساب دامین بفرستم که فقط روی این ساب دامین بره و روی mysite.com نره
    سوال دومم این هستش که با چه کدی تو وردپرس تعداد نظر های یک مطلب رو مینویسی منظورم این هست
    http://up.vatandownload.com/images2/7kv2g1dv2z3aspvv77.png

    پاسخ دهید

    پاسخ پويا صادقى

    سابدامین رو روی یه پوشه ست کنید و داخل اون پوشه، وبلاگ رو راه اندازی کنید.
    برای نمایش تعداد کامنت ها در وردپرس:

    <?php comments_popup_link(’0′, ’1′, ‘%’); ?>

  8. علی

    سپاس . یه سوال . قالب وبلاگ پاسارگاد گرافیک رو میفروشی ؟

    پاسخ دهید

    پاسخ پويا صادقى

    این تم بر پایه تم Mintaka وردپرسه که تغییراتی در ظاهرش ایجاد کردم. خیر. امکان فروشش نیست.


  9. HamidG

    سایت بسیار جالب و مفیدی داری
    خسته نباشی

    پاسخ دهید

  10. amir

    سلام خسته نباشید من توی ویدئو های زیادی دیدم وقتی از فایل ریست تو سی اس اس استفاده می کنند یه فایل بنام نورمالیز هم هست میشه یه پست اختصاصی در این مورد بزنید توی وب فارسی نتونستم پیدا کنم توضیحات کاملشو اگه هم اینجا بگید ممنون میشم کامل توضیح بدید .

    پاسخ دهید

    پاسخ پويا صادقى

    توضیح خاصی نداره، normalize هم یک نوع فایل ریست css هست که نحوه نمایش عناصر HTML5 هم برای مرورگرهای قدیمی مجددا تعریف میکنه.
    این که هر خط از کد چه کاری انجام میده، در خود کامنت های کد توضیح داده شده: normalize.css


  11. amir

    ممنون که پاسخ دادید آقا من الان دارم سی اس اس یاد می گیرم مبحث تموم شده یعنی تئوری شو کم و بیش می دونم اما وقتی میام یه فرم یا نویگیشن دراب داون بسازم به مشکل بر می خورم بیشتر تو (clear , display ) دیدم نمیشه رفتم قالب پیدا کردم سورس اونهارو نگاه می کنم میبینم مثلا زده clear:none حالا می گم چرا این اینجا اینو زده گیج تر میشم قالب های استاندارد css2 بدون فریم ورک هم نتونستم پیدا کنم اگه شما قالب استندارد یا راحلی دارید بگید ممنون میشم فکر نمی کردم سی اس اس که میگن آسون انقدر برام سخت باشه ممنون میشم کمک کنید

    پاسخ دهید

    پاسخ پويا صادقى

    برای درک بهتر Float و Clear پست All About Floats رو بخونید
    برای درک بهتر Inline و Block هم پست The Difference Between Block and Inline رو بخونید.


  12. محمد فرجی

    خیلی عالی
    ممنون

    پاسخ دهید

  13. Custom avatar

    علی فرجی

    سلام سلکتور هست که کار :hover را انجام بدهد .من الان قالب نوشته ام و میخواهم وقتی موس روی هر پست که رفت ادامه مطلب fade شود اما وقتی موس رو یه پست برود همه پست ها ادامه مطلبشون fade میشه. باید چی کار کنم

    پاسخ دهید

نظر شما چیه؟

اگر در Gravatar ثبت‏نام کرده‌اید، نمایه Gravatar شما نمایش داده می شود. درغیر این‏صورت یک نمایه انتخاب کنید ↑



Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar Custom avatar



Design By Pouya Saadeghi Based on Mintaka Theme WPCorner

Copyright © 2013 Pasargad-Graphic