Comment puis-je sélectionner un élément par ID avec jQuery en utilisant regex?

J’ai les éléments de saisie suivants:

   

AAA & BBB sont des constantes et je saurai toujours ce qu’elles sont. Cependant, RandomSsortingng sera toujours aléatoire.

Je veux obtenir la valeur de AAA_RandomSsortingng_BBB. Je ne veux pas que les valeurs des éléments d’entrée avec un ID se terminant par _Start ou _End.

J’ai essayé le suivant:

 $('[id^="AAA_"]') 

Mais ce qui précède sélectionne tous les éléments d’entrée ayant un identifiant commençant par “AAA_”

J’ai besoin d’un moyen de sélectionner en utilisant une syntaxe de type regex comme:

 $('[id^="AAA_(.+?)_BBB"]') 

Est-ce possible? Si non, quelqu’un peut-il suggérer une méthode de sélection

Vous pouvez combiner les deux sélecteurs dans un sélecteur à atsortingbuts multiples .

 ​$("[id^=AAA_][id$=_BBB]") 

Il renverra tous les éléments correspondant à tous les filtres d’atsortingbuts spécifiés:

  • [id^=AAA_] correspond aux éléments dont l’atsortingbut id commence par AAA_ , et
  • [id$=_BBB] correspond aux éléments dont l’atsortingbut id termine par _BBB .

Une autre alternative générique:

  • En utilisant un sélecteur personnalisé :regex() ,
  • Utiliser une approche basée sur .filter() .

Utilisez ceci:

 $('[id^="AAA_"][id$="_BBB"]') 

Violon: http://jsfiddle.net/J6hGx/

Cela peut être fait comme ça:

 $('input').filter(function(){ return this.id.match(/^AAA_.+_BBB$/) }) 

Vous pouvez utiliser $('input', ) pour rendre la recherche plus précise. Voir aussi ici

Vous pouvez rechercher des identifiants commençant par AAA et se terminant par BBB comme ceci:

 ​$("[id^=AAA_][id$=_BBB]") 

Le violon de travail: http://jsfiddle.net/DN9uV/

J’utilise pour résoudre ce problème avec les sélecteurs de classe qui n’ont pas besoin d’être uniques.

Cela a également un effet positif sur la vitesse car aucune recherche complexe n’est requirejse. Vous pouvez également l’utiliser pour le style différent des différents éléments.

par exemple

 element type aa element type aa element type aa and bb element type bb 

Maintenant, vous pouvez simplement utiliser le sélecteur de classe

 $('.aa').click(function(){ console.log( 'clicked type aa #' + $(this).attr('id') ); }); $('.bb').click(function(){ console.log( 'clicked type bb #' + $(this).attr('id') ); }); 

Il serait préférable de vérifier l’identifiant se terminant par _BBB par

  $("[id$=_BBB]") 

Que dis-tu de ça :