jQuery filter Case insensitive : ค้นหาอีลิเมนต์ที่ต้องการด้วย jQuery

โดย SONGCHAI SAETERN


ก่อนหน้านี้ผมเคยแนะนำวิธีค้นหาข้อมูลด้วย :contains() Selector ใน jQuery แต่ปรากฏว่างานผมถูกตีกลับครับ ทดสอบแล้วไม่เป็นดังที่ต้องการ เพราะ


text: A string of text to look for. It's case sensitive.


ครับ มันสนใจตัวอักษร ระหว่างตัวเล็กกับตัวใหญ่ด้วย

<p>I am Cyberman</p>


ถ้าผมต้องการค้นหา <p> ที่มีคำว่า cyberman การใช้ contains จะค้นไม่เจอครับ ต้องให้เหมือนทุกคำ คือ จะเจอก็ต่อเมื่อค้นคำว่า Cyberman



ดังนั้น ก็ต้องเปลี่ยนตามลิงค์นี้แหละครับ ^^"

http://stackoverflow.com/questions/7853851/jquery-how-can-i-write-a-case-insensitive-attribute-contains-selector

หลังจากที่ใช้โค้ดใหม่ก็เป็นดังนี้
$('tr').hide();//ซ่อนทั้งหมด

var myCode = $('#my_code').val();
var reg = RegExp(myCode ,"i"); 
$('.select_item').filter(function() {
     return reg.test(this.value);
}).parents('tr').show();//แสดงตามรายการที่ตรง my_code

เพียงเท่านี้ ทุกแถวที่มีคำตรงกับ my_code ก็จะแสดงส่วนแถวที่ไม่ตรงก็จะถูกซ่อนไว้ตามเดิม