JavaScript est XPath: Comment obtenir la valeur de l'attribut d'un élément?
Je veux obtenir la valeur d'un attribut d'un élément spécifique qui a un id spécifique. Pour l'exemple je veux obtenir le href
de la a
balise dont id
est prochaine:
<a href="?page=3" id="next">Next</a>
Je sais que je peux le faire comme ceci:
console.log(document.evaluate('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().href);
Mais le fait est que dans mon cas, le nom de l'attribut peuvent varier, et j'ai besoin d'un moyen de spécifier via la requête xpath. Quelque chose comme ceci:
'//a[@id="next"]/@href'
- Pourquoi ne pas vous faire
$x('//a[@id="next"]')[0].getAttribute('href')
? - Ce qui ne l'
$x
stand for? - Chrome console de la fonction XPath, comme
$$
est pourquerySelectorAll
. - Vous pouvez également faire
$x('//a[@id="next"]/@href')[0].value
- console.journal(le document.évaluer('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().getAttribute(THE_ATTRIBUTE_NAME));
Vous devez vous connecter pour publier un commentaire.
Juste essayer quelque chose comme ceci:
Selon le type d'élément que vous spécifiez dans votre xpath (élément, un nœud de texte, attribut),
iterateNext()
retourne différents type d'objet. Dans ce cas, la spécification de @attribut href, il renvoie un code javascript l'Attribut de l'objet avec la propriétévalue
contenant la valeur de l'attribut. Continue avec ton exemple:Vous pouvez essayer la prochaine exemples:
JS:
HTML:
Quelques liens qui pourraient vous aider:
Élément DOM attribut de référence
Les Types De Nœuds
Vous pouvez utiliser le De l'élément.les attributs de la propriété
document.evaluate('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().attributes['href'].value
ou la getAttribute() la méthode
document.evaluate('//a[@id="next"]', document, null, XPathResult.ANY_TYPE, null).iterateNext().getAttribute('href')