- Tag Selector
เลือก (select) element ตาม Tag HTML
$('a') // select element ที่เป็น tag <a> $('div') // select element ที่เป็น tag <div> $('img') // select element ที่เป็น tag <img> $('div, span') // select element ที่เป็น tag <div> และ <span>จากบรรทัดสุดท้ายด้านยนนั้นจะเห็นว่าเราเลือก element พร้อมๆกันดีเดียวก็ได้ ในทีนี้เราเลือกแท็ก div และ span พร้อมๆกัน - ID Selector
เลือก (select) element ตาม ID เช่นใน HTML มี element ตามด้านล่างนี่
<p id="subject">Hello!!.</p> <p id="message">Hello, how are you?.</p>
ถ้าต้องการ select เฉพาะ element ที่มี ID มีค่าเฉพาะเจาะจง ก็ทำได้ตามด้านล่าง
$('#message') $('#subject, #message')ซึ่งบรรทัดแรกเรา select เฉพาะ element ที่มี id = message ส่วนบรรทัดที่สองเรา select element ที่มี id เป็น subject และ message - Class Selector
เลือก (select) element ตาม Class$('.submenu') $('.submenu1, .submenu2, .submenu3') $('div#mainmenu.submenu')จะเห็นว่าเราสามารถผสมผสาน select โดยระบุ tag id และ class ร่วมกันได้ - Descendent Selector
เป็นการ select element โดยการะบุ selector ตามระดับชั้นของแท๊กใน HTML ด้านล่างลองดูโค้ด HTML ด้านล้าง<html> <body> <h1>Welcome to Codesniper.Org</h1> <p class="intro">Hello jQuery!</p> <p>jQuery selectors</p> Learning jQuery is fun :) <div id="main"> <p>Paragraph one</p> <p>Paragraph two</p> <p>Paragraph three</p> <div id="sub"> <p>Paragraph subone</p> <p>Paragraph subtwo</p> </div> </div> </body> </html>
จาก HTML ด้านบนถ้าเราลองใช้คำสั่งตามด้านล่างนี้$('#main p')จะเป็นการ select ทุกแท็ก <p> รวมถึงที่อยู่ภายใต้แท็ก <div> ที่ id = sub ด้วยเพราะถือว่าอยู่ภายในแท็ก <div> ที่ id = main - Child Selector
ทีนี้ถ้าเราต้องการเลือก element ที่อยู่ภายในแท็กใดแท็กหนึ่งเพียงแค่ 1 ระดับ เช่นจาก HTML ด้านบน เราต้องการเลือกเฉพาะแท็ก <p> ภายใน <div> ที่ id = main เท่านั้นไม่รวมแท็ก <p> ที่ id = sub เราก็สามารถทำได้โดย$('#main > p')จะเป็นการ select แท็ก <p> ทั้ง 3 แท็กที่อยู่ภายในแท็ก <div> - Adjacent sibling Selector
เป็นการ select element ที่อยู่ระดับเดียวกันและอยู่ติดกัน เช่นใน HTML ด้านบนถ้าเราจะ select element แท็ก <p> ที่อยู่ถัดจากแท็ก <h1> หรือ element ในบรรทัดที่สองถ้าดูด้านล่างนี่<h1>Welcome to Codesniper.Org</h1> <p class="intro">Hello jQuery!</p> <p>jQuery selectors</p>
เราก็สามารถใช้คำสั่งดังนี้$('h1 + p')หรือถ้าจะ select element ในบรรทัดที่ 3 ก็ใช้คำสั่ง$('.intro + p') - Attribute Selector
เป็นการ select element โดยดูจาก attribute ว่าเป็นไปตามที่เราต้องการจะ select หรือเปล่า โดยรูปแบบก็มีดังนี้- [attribute] เป็นการ select element ที่มี attribute ตามที่เรากำหนด เช่น
$('a[href]') $('div[id]')บรรทัดแรกเป็นการ select element แท็ก a ที่มีการระบุ attribute href อยู่ภายในแท็ก ส่วนบรรทัดที่สองเป็นการ select element แท็ก div ที่มี attribute id - [attribute ="value"] อันนี้จะ select โดยระบุละเอียดขึ้นไปอีกโดยระบุทั้ง attribute และ value ของ attribute เช่น
$('a[href="http://www.codesniper.org"]') $('input[type="text"]) - [attribute|="value"] จะ select element ทุกๆ element ที่มี attribute มีค่าขึ้นต้นตามที่เราระบุไว้ หรือมีค่าขึ้นต้นตามที่เราระบุไว้และตามด้วย "-" ยกตัวอย่างถ้าใน HTML เรามี element ตามด้านล่างนี่
<a href="example.html" hreflang="en">Some text</a> <a href="example.html" hreflang="en-UK">Some other text</a> <a href="example.html" hreflang="english">will not be outlined</a>
ถ้าเราต้องการ select element แท็ก a ที่มี attribute hreflang มีค่า "en" และ "en-UK" แต่ไม่รวม "english" เราก็สามารถทำได้โดย$('a[hreflang|="en"]') - [attribute^="value"] เป็นการ select element โดยระบุ attribute จะต้องมีค่าขึ้นต้นด้วยข้อมความที่เราระบุไว้ เช่นถ้าต้องหาร select element แท็ก a ที่ลิ้งก์ไปยังเว็ปไซต์ต่างๆ เราก็สามารถทำได้โดย ระบุหา attribute "href" ที่มีค่าขึ้นต้นด้วย "htttp:// นั่นเอง
$('a[href^="http://"]')หรือถ้าจะ select element แท็ก a ทุกๆอันที่ที่เป็นลิงก์ส่งอีเมล์ก็สามารถทำได้โดย$('a[href^="mailto:"]') - [attribute$="value"] รูปแบบคำสั่งนี้เป็นการ select element ที่ attribute มีค่าลงท้ายตามที่เราระบุ เช่นถ้าเราต้องการ select element แท็ก a ทุกอันที่เป็นลิ้งก์ไปยังไฟล์ zip ก็สามารถทำได้ดังนี้
$('a[href$=".zip"]') - [attribute*="value"] รูปแบบคำสั่งนี้เป็นการ select element ที่ attribute มีค่าที่เราระบุตรงส่วนใดก็ใด้ เช่นถ้าเราต้องการ element แท็ก a ที่มีค่า attribute "href" หรือลิ้งก์ไปยังเว็ปไซต์ใดๆที่มีคำว่า "codesniper" ลองดู element ด้านล่างนี่
<a href="http://www.codesniper.org">main link</a> <a href="http://www.codesniper.net">mirror 1</a> <a href="http://codesniper.dyndns.org">mirror 2</a>
ถ้าเราก็ใช้คำสั่ง$('a[href*="codsniper"]')ก็จะเป็นการ select element ทุกๆอันเพราะทุก element แท็ก a นั้น attribute href ที่มีคำว่า codesniper อยู่ภายในนั่นเอง - [attribute~="value"] รูปแบบคำสั่งนี้เป็นการ select element ที่ attribute มีค่าที่เราระบุตรงส่วนใดก็ใด้ภายในค่าของ attribute แต่คำที่เราระบุจะต้องเป็นคำโดดๆ ยกตัวอย่าง element ต่อไปนี้
<input name="man-news" /> <input name="milk man" /> <input name="letterman2" /> <input name="newmilk" /> ถ้าเราใช้ selector ตามด้านล่าง
$('a[href~="man"]')จะมีเฉพาะ element แรกเท่านั้นที่ถูก select - [attribute!="value"] รูปแบบคำสั่งนี้เป็นการ select element ที่ attribute มีค่าใดๆก็ตามที่ไม่ใช่ค่าที่เราระบุ จาก html element ในหัวข้อที่แล้วหากเราใช้คำสั่ง
$('a[href!="newmilk"]')ก็จะเป็นการ select element 3 อันแรกคือ<input name="man-news" /> <input name="milk man" /> <input name="letterman2" />
- [attribute] เป็นการ select element ที่มี attribute ตามที่เรากำหนด เช่น
Friday, December 30, 2011
เรียนรู้ jQuery ตอนที่1 : Selector
jQuery Selectors
Subscribe to:
Posts (Atom)