Basic Filter
- :even และ :odd เป็นการ select เฉพาะ element คู่และคี่ จาก element ทั้งมันที่ถูก select ทั้งนี้เริ่มนับ element แรกเป็น 0 มายกตัวอย่าง
$('tr:even') $('table.maintable tr:odd')บรรทัดแรกเป็นการ select element แท็ก tr ทุกๆอัน แต่ filter เฉพาะ element คู่ ส่วนบรรทัดถัดมา select element แท็ก tr ทุกอันใน table ที่ class = "maintable" และ filter เฉพาะ element คี่เท่านั้น - :first และ :last เป็นการกรองเอาฉพาะ element แรก และ element สุดท้ายจาก element ทั้งหมดที่ถูก select มา ยกตัวอย่าง
$('tr:even') $('p:first') $('div:last')บรรทัดแรกเลือก element แท็ก p ทุกอันแล้วกรองเอาเฉพาะแท็ก p อันแรกเท่านั้น ส่วนบรรทัดที่สองเราก็ได้แท็ก div ท้ายสุด - :not(selector) เป็นการกรอง element ที่ระบุใน () ออกไป ยกตัวอย่างเช่น
$('a:not(.navmenu)') $('a:not([href^="http://"])')บรรทัดแรก select element แท็ก a ทั้งหมดยกเว้นแท็ก a ที่ class="navmenu ส่วนบรรทัดที่สอง select element แท็ก a ทั้งหมดยกเว้นแท็ก a ที่ href ขึ้นต้นด้วย http:// - :eq(index) ให้มอง element ทั้งหมดที่ถูก select มาเป็นอาเรย์เริ่มจาก 0 แล้ว filter นี้จะกรองเอาเฉพาะ element ที่ตำแหน่งในอาเรย์ที่เราต้องการ ยกตัวอย่งเช่น
$('td:eq(2)')ก็จะเป็นการ select element แท็ก td ตัวที่ 3 จากทั้งหมด (อย่าลืมว่านับจาก 0 ดังนั้น :eq(2) จึงหมายถึงอันที่ 3) - :gt(index) และ :lt(index) เช่นเดียวกับ :eq() เพียงแต่ :gt(index) จะกรองเอาเฉพาะที่มากกว่าค่า index และ :lt() จะกรองเอาเฉพาะที่น้อยกว่าค่า index
- :focus ใช้สำหรับการหา element ที่กำลังถูก focus อยู่ ดังตัวอย่างด้านล่างนี่
$(':focus') $('*:focus') $('input:focus')สองบรรดทัดแรกจะได้ผลลัพธ์เหลือนกัน คือจะได้ element ที่ถูก focus คือเราสามารถละ * ได้นั้นเอง ส่วนบรรทัดที่ 3 จะ select element เฉพาะที่เป็นแท็ก input ที่ถูก focus เท่านั้น ลองดูตัวอย่างด้านล่างนี่คือการนำไปใช้งาน<!DOCTYPE html> <html> <head> <style> .focused { background: #abcdef; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> </head> <body> <div id="content"> <input tabIndex="1"> <input tabIndex="2"> <select tabIndex="3"> <option>select menu</option> </select> <div tabIndex="4"> a div </div> </div> <script> $( "#content" ).on( "focus blur", "*", function( event ) { var elem = $( this ); elem.toggleClass( "focused", elem.is( ":focus" ) ); }); </script> </body>