ก่อนหน้านี้ผมเคยแนะนำวิธีค้นหาข้อมูลด้วย :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 ก็จะแสดงส่วนแถวที่ไม่ตรงก็จะถูกซ่อนไว้ตามเดิม
ความคิดเห็น
แสดงความคิดเห็น