เริ่มต้นง่ายๆ กับ Jquery: เรียนรู้ Selectors
posted on 25 Nov 2010 03:11 by niciuzza in Knowledgeวันก่อนขอให้เพื่อนที่บริษัทสอนเขียน Jquery ให้ ใช้เวลาเรียน 1 ชม. กว่าๆ เกี่ยวกับ Selector ล้วนๆ ตอนนี้เริ่มเขียนได้บ้างแล้ว รู้สึกว่า Jquery ไม่ยากอย่างที่เคยคิด
โดยปกติแล้วเวลาที่เราเขียนเว็บ เราจะใช้ ID, Class หรือ Tag HTML ต่างๆ ซึ่ง Selectors ก็คือ การบอกตำแหน่งของโค้ดที่เราต้องการใส่ action นั้นๆลงไปนั่นเอง การเลือก selector ใน Jquery เหมือนใน CSS ทุกประการ และมีเพิ่มเติมจาก CSS2 มาบ้างเล็กน้อย ซึ่งรายละเอียดของ Selectors ทั้งหมดสามารถหาอ่านได้ใน Docs ของเว็บ Jquery
การเรียก Selectors
การเรียก Selectors เป็นพื้นฐานที่ควรรู้อย่างแรกในการเรียนรู้ Jquery เพราะเราจำเป็นต้องระบุตำแหน่งที่ต้องการให้เกิด action ที่จะเขียนขึ้นมา โดยเราจะประกาศ ในรูปแบบของ $(selector) โดยในส่วนของ [selector] นั้นจะใส่เป็นตัวแปร string ก็ได้ แล้วแต่สะดวก มาดูตัวอย่างกันเยอะๆเพื่อความเข้าใจดึกว่า
สมมติว่าเรามีโค้ดตามนี้
Hello world
- ciao!
สมมติเราต้องการชี้ตำแหน่งของข้อความ "Hello world" เราจะสามารถเรียกตำแหน่งของข้อความนี้เป็น
$("div#content div.a") -> ผลที่ได้ออกมาเป็น div.a ซึ่งมี text อยู่ภายในคือ Hello world
หรือ ถ้าต้องการชี้ตำแหน่งที่ "ciao!" จะเรียกเป็น
$("#content .b ul > li")
สรุปง่ายๆจากตรงนี้ก็คือ เราต้องการทำอะไรตรงไหน เราก็ชี้ไปที่ Tag ที่ครอบตัวนั้นอยู่นั่นเองค่ะ ถ้ามีปัญหาเรื่อง Tag ซ้ำซ้อนมีเยอะ ให้แก้ปัญหาด้วยการใส่ id หรือ class เข้าไปเพื่อให้ระบุตำแหน่งได้ง่ายขึ้นค่ะ
จากโจทย์ เราต้องการเปลี่ยน คำว่า "Hello world" ให้เป็นอักษรสีแดง เราสามารถแก้ CSS ได้ โดยเพิ่ม .css() เข้าไปข้างหลัง selector ตัวอย่างนี้คือ
$("#content .a").css('corlor','red'); -> ผลที่ได้จะได้คำว่า Hello World เป็นสีแดง
เราสามารถเรียกใช้ selector ผ่าน ตัวแปรได้ เช่น จากตัวอย่างเดียวกันนี้สามารถเขียนได้เป็น
var selector = "#content .a";
$(selector).css('corlor','red');
หรือ
var id = "#content";
var class = ".a";
$(id+" "+class).css('corlor','red');
ทั้ง 3 แบบนี้จะให้ผลลัพธ์เดียวกันหมด
ถ้าเราเคยเขียน CSS มาก่อน คงจะคุ้นกับการเขียน Selectors ใน Jquery ไม่มากก็น้อย ส่วนฟังชั่นอื่นๆที่ตามมาข้างหลังมาหลากหลายมาก ทั้ง Event เช่น เมื่อกดเม้าส์ เมื่อกดปุ่ม เป็นต้น หรือการดึงค่าต่างๆใน selectors นั้นๆออกมา เพื่ออ่าน หรือแก้ไขมัน
ตัวอย่างง่ายๆเช่น
จากโค้ดข้างบน ถ้าเราต้องการดึงคำว่า "Hello world" ออกมา เราสามารถสั่งได้เป็น
var a = $("#content .a").text(); -> ค่าของ a จะเท่ากับ "Hello world"
ในที่นี้ คำสั่ง text() จะดึงเฉพาะ text ออกมาเท่านั้น ถ้าต้องการดึง HTML ออกมาให้ใช้คำสั่ง html() แทน
var a = $("#content .a").html(); -> ค่าของ a จะเท่ากับ "Hello world"
หรือ ถ้าต้องการดึงโค้ดทั้งหมดใน class b จะต้องสั่งเป็น
var b = $("#content .b").html(); -> ค่าของ b จะเท่ากับ
- ciao!
การดึงโค้ดเป็น html เราสามารถนำโค้ดดังกล่าวไปแปะในส่วนอื่นๆได้



จะแสดง layer comp ปัจจุบัน ถ้าหากเราต้องการ update layer comps ที่สร้างขึ้น ให้เลือก layer comps ที่ต้องการอัพเดท และกดปุ่ม
เพื่ออัพเดท ให้จดจำรูปแบบการแสดงปัจจุบันไว้ใน layer comps นั้น
จะเป็นการแสดง warning ซึ่งมันจะแสดงสัญลักษณ์นี้ ต่อเมื่อ การ save state ของ layer comps นั้น ไม่สามารถแสดงได้เหมือนเดิม คือ มีการ delete layer, merge layer, หรือ แปลง layer เป็น background layer