Öncelikle efenim kodun örneğini http://jsbin.com/ucidi/3 adresinden görebilirsiniz. Hatta linke tıklayıp test de edebilirsiniz. Başlıkta da Niye case-sensitive ing. demeyin yoksa başlık aşırı uzun oluyordu :DJquery’de bildiğiniz üzere contains kodu çalışırken büyük küçük uyumu olmadan çalışmaktadır ve standardı olmayan yazılarda böyle bir uyum olmayacağından düzgün çalışmıyor. Bende koca jquery için bunun kolay yolunu yapmamışlar mı derken bi baktım ki “custom selector” denilen bir velet eklenmiş framework’e. Bende bunu evirip çevirip (tabii gogıl’ında büyük yardımıyla) büyük küçük uyumu olmadan contains’i kullanmayı sağladım. Üstüne de dedim bunun soldan sağa olanı da olmalı ve alttaki iki kodu çıkarttım ortaya. http://www.west-wind.com/weblog/posts/519980.aspx adresinde çok iyi anlatılmış zaten soldanSaga kodunda hiçbir değişiklik yapmadım 😀$.expr[‘:’].icerik = function(obj, index, meta, stack){return (obj.textContent || obj.innerText || jQuery(obj).text() || ”).toLowerCase().indexOf(meta[3].toLowerCase()) >= 0;};$.expr[“:”].soldanSaga = function(el, i, m) {var search = m[3];if (!search) return false;return eval(“/^[/s]*” + search + “/i”).test($(el).text());};
Bu kodların yaptığı contains kodu ile aynıdır. Tek farkları ya Case Sensitive olmadan ister soldan sağa isterseniz de içerisinde arama yapmanızı sağlar. Diğer html ve js kodları ise işin detayıdır.Örnek kullanımı ise;(‘div.User label:soldanSaga(‘ + n + ‘)’).show(); // Soldan sağa kelime aramanızı sağlar(‘div.User label:icerik(‘ + n + ‘)’).show(); // icerikte istediğiniz gibi kelime aramanızı sağlar
Ayrıca bir güzellik daha ekledim. Facebook kullanan biriyseniz bilirsiniz ki kullanıcı ararken istediğiniz gibi farklı kullanıcıları tek bi searchbox’ta arayabilirsiniz. Bende bunun biraz daha basit versiyonunu ekledim. Şöyle ki; eğer searchbox’a virgül eklerseniz virgülden sonraki kelimeyi ayrı bir şekilde arar. Örneğin; “Ali,Veli” yazdığınızda ali ve veli ekrana gelir gibi. Hee bu ne işe yarar be kardeşim napiyim onu derseniz; diyelim ki 10000 kişilik bir listeniz var. Bu listede tek tek bulmanız haliyle de zor olur. Bu işlemle bir nebze bu yük azalır. Ama derseniz ki ben ismini hatırlamıyorum sadece ab ile başlıyordu, farketmez, ab ile başlayan kişileri gösterir. Örneğin; “Ali, Ay,Se” yazdığınızda bu kodla listede “ali, ayşe, sema” gözükür. Böyle multi fonksiyonel bir koddur. Hadi kalın sağlıcakla.