jQuery Object Accessors

สำหรับ jQuery ในส่วน Object Accessor หรือเรียกว่าเป็นเรื่องของ function ของคำสั่งที่ jQuery เตรียมไว้ให้กับเราซึ่งมีอยู่ ด้วยกันดังนี้

Core / each

ส่วนนี้คือการทำงานในลักษณะ loop ซึ่งทำให้เราสามารถที่จะทำงาน วนข้อมูลง่ายๆ จนกว่าจะครบตามจำนวน Length ของ selector ที่เลือก ซึ่งจะขออธิบายในตัวอย่างนี้นะครับ

จากตัวอย่างนี้ จะเป็นการวน loop ตามจำนวน ที่ selector คือ $(“div”) ทั้งหมด จะสังเกตุเห็นว่า จะมี alert บอกว่ากำลังทำงานกับ tag div ตัวไหนอยู่ และ parameter i ก็จะเป็นตัวบอก รอบที่อยู่ใน loop เริ่มจาก 0

<script language=”javascript”>

$(document).ready(function(){

$( document.body ).click( function () {

$(”div”).each( function(i) {

alert( (i+1) + “. Working in Tag =” + this.innerHTML);

if (this.style.color !=”blue”) {

this.style.color=”blue”;

}else{

this.style.color=””;

}

} );

} );

});

</script>

<style type=”text/css”>

div { color:red; text-align:center; cursor:pointer;

font-weight:bolder; width:300px; }

</style>

มี Tag div อยู่ 3 ตัวซึ่งเราจะมองว่า Tag div แต่ละตัวคือ element แต่ละ element

<div>Click here</div>

<div>to iterate through</div>

<div>these divs.</div>

Core/Length

การใช้ method length เพื่อนับจำนวน array ของ Selector (method length เป็นของ javascript อยู่แล้ว) ซึ่งเราสามารถนำมาประยุกต์ใช้กับงานได้ ยกตัวอย่างเช่น ตัวอย่างการเพิ่มแถวของ Table และ ลบแถวของ Table อย่างง่ายๆ ซึ่งเราจะใช้ manipulation append เพื่อ create element แถวลงไปใน table โดยต่อท้ายแถวสุดท้ายลงไป

<script language=”javascript”>

$(document).ready(function(){

// ปุ่ม Insert

$(”#btnIn”).click(function () {

var txtnum=$(”.trcolor”).length+1;

$(”#tblData”).append($(”<tr class=\”trcolor\”> ” +

“           <td>”+txtnum+”</td>” +

“           <td><input type=\”text\”></td>”+

“           <td><input type=\”text\”></td>”+

“           <td><input type=\”text\”></td>”+

” </tr>”));

getMsg();

});

// ปุ่ม Delete

$(”#btnDel”).click(function (){

$(”.trcolor:last”).remove();

getMsg();

});

// function บอกจำนวนแถว โดยใช้ method length

function getMsg(){

var n=$(”.trcolor”).length;

$(”#lblMsg”).text(”There are ” + n + ” Rows.”);

}

});

</script>

<style type=”text/css”>

.trcolor { background:#F2F2F2; }

</style>

<button id=”btnIn”>RUN</button> | <button id=”btnDel”>Del</button>

<div id=”lblMsg”></div>

<table id=”tblData” width=”600″ border=”0″ cellpadding=”1″ cellspacing=”1″ bgcolor=”#CCCCCC”>

<tr>

<td width=”12%”><strong>Number</strong></td>

<td width=”24%”><strong> Name</strong></td>

<td width=”22%”><strong>Surname</strong></td>

<td width=”42%”><strong>Tel</strong></td>

</tr>

</table>

Core/eq(position)

Argument position คือการใส่ Number Index ลงไป

การใช้ eq สำหรับระบุ ไปยัง Index ของ element แบบเฉพาะเจาะจงลงไปในตัวใดตัวหนึ่ง จะอธิบายด้วยตัวอย่างนี้นะครับ

<script language=”javascript”>

$(document).ready(function(){

/* initial function */

$(”#btnRun”).click(function (){

$(”div”).eq(2).css(”background”,”#CCFFFF”);

});

});

</script>

จากตัวอย่างนี้จะเป็นการ เลือก selector ที่ element Div และกำหนด eq ที่ 2 คือตำแหน่ง index ที่ 2 จากข้อมูลชุดด้านล่างนี้ เพื่อทำการ ใส่สี่ background

<button id=”btnRun”>RUN</button>

<div><a href=”#”>Data 01</a> < — index 0 , first element </div>

<div><a href=”#”>Data 02</a> < — index 1</div>

<div><a href=”#”>Data 03</a> < — index 2</div>

<div><a href=”#”>Data 04</a> < — index 3          , last element</div>

Core/get

การใช้ get เป็นการรับ element จาก selector ซึ่งค่าที่ได้จะเป็นลักษณะ array

<script language=”javascript”>

$(document).ready(function(){

$(”#btnRun”).click(function (){

var objDiv= $(”div”).get(); // ใช้ get ใส่ตัวแปร objDiv

var txt=[];            // ประกาศตัวแปร Array

for (var i =0;i<objDiv.length;i++){

txt.push(objDiv[i].innerHTML);

// push คือ method ของ Javascript เพื่อ ใส่ข้อมูลใน ตัวแปร Array

}

$(”span”).text(txt.join(” , “));

// join คือ method ของ Javascript เพื่อ เชื่อมสมาชิกแต่ละตัว ใน Array ซึ่ง Argument ของ join คือตัวคั่นระหว่าง สมาชิกแต่ละตัว

});

});

</script>

<button id=”btnRun”>RUN</button><br>

Data Divs Join : <span style=”color:#FF0000″></span>

<hr>

<div>One</div>

<div>Two</div>

<div>Three</div>

<div>Four</div>

Core/get (index)

เป็นการรับ element จาก selector แต่ระบุ index เข้าไปเพื่อชี้เฉพาะเจาะจง ลงไป ว่าจะเลือกตัวไหน ยกตัวอย่าง จาก ตัวอย่างด้านบน

$(”div”).get(2).innerHTML หากกำหนด get(2) จะได้ค่า กลับมาเป็น Three เนื่องจากจะไปจับ elements Index ที่ 2 นับจาก 0 ซึ่งก็คือ แทก <div> ที่ข้อความว่า Three

Core/index (subject)

Subject คือ element ที่จะระบุใน Index

เรื่อง index จะเป็นเรื่องการหาค่า index ใน element ว่าอยู่ตำแหน่งที่เท่าไหร่ ซึ่ง subject จะเป็นตัวระบุ current ของ index ที่ถูกกระทำ หาก ยังไม่ได้ถูกกระทำ จะ คืนค่า -1 กลับมา

จากตัวอย่างนี้ เมื่อ click ไปที่ Tag div แต่ละตัว จะแสดง alert current Index ของตัวนั้นออกมา

<script language=”javascript”>

$(document).ready(function(){

$(”div”).click(function (){

var txt=”Index is : ” + $(”div”).index(this);

alert(txt);

});         });

</script>

<div>One</div>

<div>Two</div>

<div>Three</div>

<div>Four</div>