Make jQuery :contains Case-Insensitive
Avant jQuery 1.8
// NEW selector
jQuery.expr[':'].Contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
// OVERWRITES old selecor
jQuery.expr[':'].contains = function(a, i, m) {
return jQuery(a).text().toUpperCase()
.indexOf(m[3].toUpperCase()) >= 0;
};
Avec jQuery 1.8 et au-dessus (jQuery 2 et jQuery 3 ?)
$.expr[":"].contains = $.expr.createPseudo(function(arg) {
return function( elem ) {
return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
};
});
Dans ce dernier cas, il s'agit d'un overwrite, mais il est trivail de partir de l'exemple précédent pour en tirer la syntaxe à suivre pour créer un nouveau sélecteur. Je proposerais icontains, le préfixe i marquant souvent l'aspect insensible à la casse en PHP.