در جی کوئری هم میتونید برای دسترسی به شی ای که id آن برابر school هست از همین سلکتور استفاده کنید! به صورت زیر:
کد:
var object = $("#school");
کد بالا شی مورد نظر با سلکتور school# گرفته شد.
مثال کاربردی : Hello World!
در این برنامه کاربر با کلیک بروی یک لینک پیام "Hello World" را دریافت میکند.
کد:
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#link1").click(function(){
alert("Hello World!");
});
});
</script>
</head>
<body>
<a id="link1" href="#">Click Here!</a>
</body>
</html>
کدهای بالا رو در نت پد یا هر ادیتور دیگه ای تایپ کنید و با پسوند html یا htm ذخیره کنید.
با دوبار کلیک کردن بروی فایل ایجاد شده مرورگر شما باز خواهد شد و نتیجه را خواهید دید!
بروی "Click Here" کلیک کنید تا پیام مورد نظر به صورت یک Alert نشان داده شود.
توضیح کد:
در اینجا لازمه که به یک نکته در مورد تفاوت شی ای در جی کوئری با استفاده از $ گرفته می شود و تعریف شی در جاوااسکریپت اشاره کنم.
همانطور که میدانید به دست آوردن شی در DOM توسط جاوااسکریپت با استفاده از توابعی همچون : getElementById - getElementsByTagName یا حرکت بر اشیای DOM توسط Nodeها صورت میگیرد اما جی کوئری برای این دستیابی از مفهوم سلکتور استفاده میکند.
به کد زیر توجه کنید:
کد:
var linkObject = document.getElementById("link1");
کد بالا از تابع getElementById برای دستیابی به شی مورد نظر که مقدار id آن برابر link1 است استفاده میکند.
متغیر تعریف شده جدید به نامه linkObject دارای صفات و متدهای مختلفی است که به صورت پیش فرض در جاوااسکریپت تعریف شده اند.
حال به این کد توجه کنید:
کد:
var jqueryObject = $("#link1");
کد بالا با استفاده از jQuery شی مورد نظر را از DOM انتخاب میکند اما در این جالت دیگر این شی خاصیت های پیش فرض همانند شی linkObject را نخواهد داشت بلکه متدها وصفات جدیدی در آن قرار دارد که کار با این متدها کار را بسیار برای ما راجتتر میکند.
توضیح خط به خط:
این کد در حقیقت یک رخداد رو مدیریت میکنه. وقتی document کاملا لود شد(ready) تابعی که به عنوان آرگومان به آن دادم فراخونی میشه.
در اینجا تابع:
کد:
function(){
$("#link1").click(function(){
alert("Hello World!");
});
}
بعد از لود شدن کامل document فراخونی میشه!
یکی از محاسن جاوااسکریپت اینه که میشه توابع رو به صورت inline(نه به مفهومی که در++C هست) تعریف کرد. در js با توابع همانند متغیر رفتار می شود.
در این کد:
یک رخداد یا event جدید به شی با آی دی link1 اضافه می شود که دوباره همانند رخداد قبلی یک تابع به عنوان آرگومان دریافت میکند:
کد:
function(){
alert("Hello World!");
}
در کد بالا نیز تابع alert که از توابع پیش فرض js است با رشته "Hello World!" به عنوان آرگومان ورودی فراخوانی شده و عبارت !Hello World بعد از کلیک کردن بروی لینک بروی صفحه چاپ می شود.
اگر با مفهموم event و eventListener خیلی آشنایی ندارید شاید نتونید توضیحات بالا رو خوب درک کنید ولی مشکلی نیست در درس های آینده به مفهوم رخداد و listener ها میپردازیم.
انواع سلکتورها:
همونطور که قبلا توضیح دادم سلکت کردن اشیا در جی کوئری دقیقا مثل CSS هست.
1 - انتخاب شی بر اساس صفت class
به کد زیر توجه کنید:
کد:
<p class="master">Contents...</p>
برای انتخاب این شی که کلاس آن برابر master است باید از این کد استفاده کنید:
2 - انتخاب شی بر اساس صفت ID
کد:
<p id="master">Contents...</p>
برای انتخاب این شی که id آن برابر master است باید از این کد استفاده کنید:
3 - انتخاب شی بر اساس Tag name
کد:
<tagname>Contents...</tagname>
برای انتخاب یک شی که اسم تگ آن مشخص است میتوانیم از کد زیر استفاده کنید
باید توجه داشته باشید که اگر چندین تگ با یک اسم در document موجود باشد میتوان با اندیس مخصوص آن تگ شی آن را به دست آورد.
به این مثال توجه کنید:
کد:
<html>
<head>
..................
</head>
<body>
<div>This is the first tag</div>
<div>This is the second tag</div>
<div>This is the third tag</div>
</body>
</html>
برای دسترسی به شی های div میتوان از این کدها استفاده کرد:
کد:
$("div")[0] //access to the first div
$("div")[1] //access to the second div
$("div")[3] //access to the third div
4 - دسترسی به اشیای تو در تو
به این کد توجه کنید:
کد:
<div id="first">
<p>My contents in "p" Tag...</p>
<span>My contents in "span" Tag...</span>
</div>
برای دسترسی به شی های داخل تگ div از این کدها استفاده میکنیم:
کد:
$("#div span")[0] //access to the span tag element
$("div p")[0] //access to the p tag element
پایان فصل چهارم