web-dev-qa-db-fra.com

Puis-je utiliser une expression régulière dans querySelectorAll?

Sur une page que je fais, je vais me retrouver avec des éléments link personnalisés comme ceci:

<link rel="multiply" type="service/math" src="path/to/service">
<link rel="substract" type="service/math" src="path/to/service">
...

J'essaie d'utiliser querySelectorAll pour récupérer tous les éléments de lien avec un type service/... spécifié et je ne vais nulle part.

Actuellement, je sélectionne ceci:

root.querySelectorAll('link');

ce qui me donne tout <link> éléments quand je veux seulement ceux de type service/.*

Questions:
Puis-je ajouter une expression régulière à un sélecteur QSA? Dans l'affirmative, comment le faire?

36
frequent

Vous ne pouvez pas vraiment utiliser une expression régulière dans un sélecteur, mais les sélecteurs CSS sont assez puissants pour votre besoin avec une syntaxe "commence par" inspirée des expressions régulières.

Vous pouvez utiliser une sous-chaîne de sélecteurs d'attribut correspondant: link[type^=service]

Lit "Noeuds de type link avec un attribut type commençant par" service "

De la spécification formelle :

[att ^ = val]

Représente un élément avec l'attribut att dont la valeur commence par le préfixe "val". Si "val" est la chaîne vide, le sélecteur ne représente rien.

Travailler JSFiddle

64