existe-t-il une fonction qui puisse aider à échapper à tous les méta-caractères contenus dans le sélecteur de jquery?

Directement des documents jQuery:

Si vous souhaitez utiliser l’un des méta-caractères (tels que !"#$%&'()*+,./:;?@[\]^&a{|}~) comme une partie littérale de un nom, vous devez échapper le caractère avec deux barres obliques inverses: \. Par exemple, si vous avez un élément avec id="foo.bar" , vous pouvez utiliser le sélecteur $("#foo\\.bar") .

Je veux savoir si une fonction quelconque peut m’aider à échapper à ces méta-personnages?

Regardez cette vidéo sur les bogues jQuery, l’auteur a une fonction qu’il a écrite qui utilise des regex pour échapper correctement à tous les sélecteurs jQuery @ 52: 18. Note latérale: la vidéo est excellente, chaque développeur utilisant jQuery devrait la regarder.

Transcrit pour la postérité:

 Ssortingng.prototype.escapeSelector = function () { return this.replace( /([$%&()*+,./:;<=>?@\[\\\]^\{|}~])/g, '\\$1' ); }; 

Vous utiliseriez ceci comme ceci:

 $('#' + 'foo.bar'.escapeSelector());