En utilisant les regex en jquery élément de sélection
J'ai plusieurs éléments de la page html, je les appelle à l'aide de javascript comme ceci:
$('#element_1_value')
$('#element_2_value')
$('#element_3_value')
$('#element_4_value')
$('#element_5_value')
.....
Maintenant, je dois créer un événement de clic pour tous les éléments . Comment je peux le faire via des regex.
Vous devez utiliser une classe pour l'ensemble de ces éléments
Cela peut être un doublon de: stackoverflow.com/questions/190253/...
Cela peut être un doublon de: stackoverflow.com/questions/190253/...
OriginalL'auteur Shehzad Bilal | 2012-01-10
Vous devez vous connecter pour publier un commentaire.
Voici quatre manières différentes d'aborder le problème:
Option #1: Vous pouvez les mettre tous dans le même sélecteur:
Option #2: Encore mieux serait d'attribuer une classe commune à tous:
Et, puis de les utiliser:
Option #3: Il est aussi possible d'écrire des sélecteurs pour ce que l'id de début et de fin avec une chaîne de caractères, mais je ne recommanderais pas cela, car il nécessite le sélecteur de moteur à examiner chaque objet dans la page qui a un attribut id qui n'est pas le moyen le plus rapide de faire les choses:
Option #4: je ne suis pas au courant de tout built-in jQuery support pour l'expression rationnelle correspond à des sélecteurs. Vous pouvez utiliser une fonction de filtre où tout javascript arbitraire pourrait examiner et objet de décider si il ne correspondait pas, mais la seule façon de l'utiliser avec une regex nécessiterait la création d'un objet jQuery de tous les objets dans la page avec un id, puis en exécutant le filtre sur chacun d'eux. Qui pourrait fonctionner, mais n'est certainement pas le moyen le plus efficace de faire les choses. À l'aide d'une classe commune permet au navigateur afin d'optimiser vos requêtes beaucoup plus que la regex filtre.
Une regex match devrait ressembler à ceci:
Cela crée un objet jQuery de tous les objets dans la page qui contient un attribut id et compare ensuite chacun à l'expression régulière, en supprimant tout élément qui ne correspond pas. Comme je l'ai dit plus tôt, je ne recommanderais pas cela pour des raisons de performances.
Dans ce cas, attribuer une classe à l'ensemble d'entre eux et d'utiliser le
.
sélecteur comme mentionné dans la réponse.la classe est une autre option, mais est-il possible d'utiliser les regex
J'ai ajouté des commentaires à la fin de ma réponse sur les regex. Ce n'est pas la meilleure façon de le faire.
Je suis juste curieux de savoir pourquoi vous avez choisi la réponse que vous avez fait quand je l'ai offert à vous quatre façons différentes de le faire, y compris à l'expression rationnelle de la méthode initialement demandé et y compris ceux mentionnés ici. Ce n'est pas une réponse plus complète ou qu'ai-je manqué?
OriginalL'auteur jfriend00
Vous pouvez utiliser l'commence avec le sélecteur:
http://api.jquery.com/attribute-starts-with-selector/
Je suis d'accord avec les autres que vous êtes probablement mieux d'utiliser une classe. La seule façon que j'ai pu voir de l'aide d'une regex serait pour itérer sur chaque élément, ce qui n'est clairement pas une bonne solution
OriginalL'auteur dearlbry
Pourquoi ne pas vous utiliser Classe au lieu de ID?
Par exemple: tous les éléments ci-dessus ont "your_class_name" de la classe, et ce que vous avez à faire est:
À l'aide de code Class et ID pour de meilleures performances
OriginalL'auteur Bon Espresso