jQuery - Utiliser des caractères spéciaux dans les noms des sélecteurs

Si vous tentez d'utiliser certains caractères spéciaux en jQuery, par exemple dans vos noms de sélecteur, cela engendrera une erreur.

Exemple, le code suivant ...

$("#test=").attr("id");

... produira une erreur comme celle-ci :

Uncaught DOMException: Failed to execute '$' on 'CommandLineAPI': '#test=' is not a valid selector.
    at <anonymous>:1:1

En effet, jQuery interdit un certain nombre de caractères dans le nom des sélecteurs :

#;&,.+*~':"!^$[]()=>|/

Heureusement, il est possible de passer outre. Pour cela, il suffit simplement de les échapper en utilisant un double backslash. 

Pour vous faciliter la tâche, voici une regex que vous pourrez utiliser :

/([ #;&,.+*~\':"!^$[\]()=>|\/@])/

Ainsi, pour rendre fonctionnel l'exemple précédent, on utilisera le code suivant :

$("#test=".replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,'\\$1')).attr("id");

 


9 April 2018 - Tags : jQuery

Commentaires

Ajouter un commentaire

0 Commentaires

Rechercher

Tags

Suivez-nous