sélecteur Javascript avec caractère générique

voix
0

Qu'est - ce qu'un joker je pourrais utiliser pour tout sélectionner sur la page qui a cette selectorId? aria-describedby=gridx_Grid_13-9 Le selectorId est créé dynamiquement. La 13partie du selectorId est différent à chaque fois que la page est chargée.

Voilà ce que j'ai essayé: var lineAmounts = document.querySelectorAll('[aria-describedby=gridx_Grid_ + * + -9]');et qui ne fonctionne pas.

Créé 07/11/2018 à 20:17
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
2

Vous pouvez utiliser une combinaison de plusieurs sélecteurs d'attributs .

Si vous voulez sélectionner tous les éléments où l'attribut aria-describedbycommence par une chaîne , vous pouvez sélectionner d' abord à l'aide de l' ^=opérateur. La combinaison avec l' $=opérateur , vous pouvez limiter encore plus la sélection et définir la manière dont la fin de l'attribut devrait ressembler.

const prefix = 'gridx_Grid_';
const suffix = '-9';

const collection = document.querySelectorAll(
  `[aria-describedby^="${ prefix }"][aria-describedby$="${ suffix }"]`
);

collection.forEach( element => console.log( element.innerText ) );
<div aria-describedby="gridx_Grid_13-9">Text 1</div>
<div aria-describedby="gridx_Grid_10-10">Text 2</div>
<div aria-describedby="gridx_Grid_11-9">Text 3</div>

Créé 07/11/2018 à 20:22
source utilisateur

voix
1

Une option serait d'utiliser la chaîne de sélection:

[aria-describedby^="gridx_Grid_"][aria-describedby$="-9"]

qui recherchera un élément dont l' aria-describedbyattribut commence et se termine par la chaîne désirée, mais il serait plus fiable pour itérer sur tous les éléments avec aria-describedbyet trouver celui qui correspond, au cas où il y a des éléments qui commencent et se terminent par ces sous - chaînes , mais ont autre chose que des chiffres au milieu:

const element = Array.prototype.find.call(
  document.querySelectorAll('[aria-describedby]'),
  element => element.getAttribute('aria-describedby').match(/gridx_Grid_\d+-9/)
);
Créé 07/11/2018 à 20:22
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more