Existe-t-il un moyen de faire une correspondance de nom d'élément générique en utilisant querySelector
ou querySelectorAll
? Je vois la prise en charge des caractères génériques dans les requêtes d'attribut mais pas pour les éléments eux-mêmes.
Le document XML que j'essaie d'analyser est essentiellement une liste plate de propriétés et j'ai besoin de trouver des éléments qui ont certaines chaînes dans leurs noms.
Je me rends compte que le document XML a probablement besoin d'une restructuration si j'en ai besoin, mais cela n'arrivera tout simplement pas.
Toute solution, sauf le retour à l'utilisation du XPath apparemment obsolète (IE9 l'a abandonné) est acceptable.
javascript
dom
domparser
selectors-api
Erik Andersson
la source
la source
Réponses:
[id^='someId']
correspondra à tous les identifiants commençant parsomeId
.[id$='someId']
correspondra à tous les identifiants se terminant parsomeId
.[id*='someId']
correspondra à tous les identifiants contenantsomeId
.Si vous recherchez l'
name
attribut, remplacez-leid
parname
.Si vous parlez du nom de balise de l'élément, je ne pense pas qu'il existe un moyen d'utiliser
querySelector
la source
document.querySelectorAll("div[id$='foo']")
IE8 n'a qu'un support QSA partiel, je pense qu'ils ne supportent que les sélecteurs CSS2.1, donc ces sélecteurs ne fonctionneront pas dans IE8, mais IE9 + fonctionnera.J'étais en train de déconner / méditer sur des one-liners impliquant querySelector () et je me suis retrouvé ici, et j'ai une réponse possible à la question OP en utilisant des noms de balises & querySelector (), avec des crédits à @JaredMcAteer pour avoir répondu à ma question, alias avoir RegEx-like correspond à querySelector () en Javascript vanille
En espérant que ce qui suit sera utile et répondra aux besoins du PO ou de tous les autres:
Ensuite, nous pouvons, par exemple, récupérer les trucs src, etc ...
la source
Définissez le tagName comme un attribut explicite:
J'en avais besoin moi-même, pour un document XML, avec des balises imbriquées se terminant par
_Sequence
. Voir la réponse de JaredMcAteer pour plus de détails.Je n'ai pas dit que ce serait joli :) PS: Je recommanderais d'utiliser
tag_name
over tagName, de sorte que vous ne rencontriez pas d'interférences lors de la lecture des attributs DOM implicites "générés par ordinateur".la source
Je viens d'écrire ce court script; semble fonctionner.
la source
Il y a un moyen de dire ce qui n'est pas. Faites juste le pas quelque chose qu'il ne sera jamais. Une bonne référence de sélecteur css: https://www.w3schools.com/cssref/css_selectors.asp qui montre le sélecteur: not comme suit:
Voici un exemple: un div suivi de quelque chose (tout sauf une balise az)
la source