Ir al contenido principal

This is my blog, more about me at marianoguerra.github.io

🦋 @marianoguerra.org 🐘 @marianoguerra@hachyderm.io 🐦 @warianoguerra

contains case insensitive en jquery 1.8 (:containsi)

digamos que queres filtrar algo en jquery basado en el texto de algunos nodos, en tal caso usarias :contains

pero que si queres que sea case insensitive?

luego de buscar un poco vas a encontrar este issue de jquery y vas a copiar y pegar un codigo de hace 3 anios para darte cuenta que se rompe en jquery >= 1.8

despues vas a usar esta version:

function jqueryContainsI(text) {
    return function (elem) {
        return (elem.textContent || elem.innerText || $.text(elem)).toLowerCase().indexOf(text.toLowerCase()) > -1;
    };
}

jqueryContainsI.sizzleFilter = true;

// add case insensitive :contains filter called :containsi (see the last i)
$.extend($.expr[':'], {
    'containsi': jqueryContainsI
});