PROJET AUTOBLOG


HowTommy

source: HowTommy

⇐ retour index

Nettoyer un sélecteur jQuery

mercredi 9 octobre 2013 à 13:10
Aujourd'hui j'ai rencontré un léger souci avec jQuery.
J'avais besoin de récupérer un objet HTML dont l'id contenait des crochets [ ], et ceci :

$('#MonInput[3]')

me renvoyait undefined à chaque fois.
En fait les crochets servent à autre chose dans les requêtes jQuery. Il faut donc les échapper avec "\\" pour que notre requête sur l'id marche :

$('#MonInput\\[3\\]')

Sauf qu'échapper à chaque fois les caractères, lorsqu'on en a beaucoup, ce n'est pas forcément pratique. De plus si le sélecteur de notre input est dans une variable, il faut faire des replace...
Le plus simple était donc de faire une méthode pour ça :

function CleanSelector(selector) {
    return selector.replace(/([^a-zA-Z0-9_-])/g, '\\\\$1');
}

Cette méthode va échapper avec "\\" tous les caractères non alphanumériques (+ underscore et tiret) !
Nous n'avons donc plus qu'à appeler notre méthode :

$('#' + CleanSelector(monInputSelector))

Et voilà le travail !
Bonne journée à tous !