Bonjour,
J'ai trouvé sur internet plusieurs bouts de code pour rendre le pseudo sélecteur "contains" non sensible à la casse et notamment ceux là :
ou encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $.extend($.expr[":"], { "containsIN": function(elem, i, match, array) { return (elem.textContent || elem.innerText || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; } });
A moins que je n'ai pas été attentif, ou qu'il y a un détail qui m'a échappé, j'ai constaté que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 (function() { jQuery.expr[':'].containsNC = function(elem, index, match) { return (elem.textContent || elem.innerText || jQuery(elem).text() || '').toLowerCase().indexOf((match[3] || '').toLowerCase()) >= 0; } }(jQuery))
- le paramètre array de la premier version ne semble pas nécessaire
- le test sur jQuery(elem).text() de la seconde version ne semble pas nécessaire
Au final je me suis dit que je pouvais enlever le paramètre array mais que je devais conserver le test et j'ai donc le code suivant :
Mais j'aime bien comprendre ce que je fais et là ça semble fonctionner mais je ne saurait décrire le fonctionnement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $.extend($.expr[":"], { "containsIgnoreCase": function (elem, i, match) { return (elem.textContent || elem.innerText || $(elem).text() || "").toLowerCase().indexOf((match[3] || "").toLowerCase()) >= 0; } });
Ai-je besoin du paramètre array ?
Le test sur $(elem).text() est-il utile (car je ne vois pas de différence) ?
A quoi correspondent les paramètres elem, i, match et array ?
Merci.
Partager