J'ai une chaîne json qui contient un élément HTML. Ce que j'essaie de réaliser est de récupérer toute la valeur de balise d'ancrage dans cette chaîne.
Json String
Informations de référence "content": "
"
Voici le format HTML
content.match(/href="([^"]*?)"/);
J'ai essayé comme ça mais je n'arrive pas à obtenir la valeur exacte:
<a href="https://myurl.com">My Url</a>
J'obtiens cette valeur
<div id="TestDiv" hidden >
</div>
let anchor = document.getElementById("TestDiv").getElementsByTagName("li");
anchor[0].innerHTML
Mais je veux obtenir https://myurl.com
une autre façon que j'ai essayée qui a été fermée bien que cela pose toujours un problème mais je ne veux pas utiliser regex:
<p>Reference information</p> <ul> <li><a href="https://myurl.com">My Url</a></li> <li><a href="https://yoururl.com">Your Url</a></li> </ul>
Comment puis-je y parvenir?
3 Réponses :
Vous pouvez accéder à la valeur de l'attribut href en utilisant .href ou en utilisant la méthode getAttribute ("href"). Cependant, vous obtenez actuellement les éléments li, mais vous voulez à la place obtenir les éléments d'ancrage.
var i;
for (i = 0; i < anchor.length; i++) {
anchor[i].href;
}
Pour obtenir tous les href, vous devrez parcourir le tableau d'ancres. P >
let anchor = document.getElementById("TestDiv").getElementsByTagName("a");
anchor[0].href;
Mais je ne peux pas obtenir la valeur exacte, revoyons
Je ne suis pas en train de suivre, si l'ancre [0] vous donne un élément valide, pourquoi cela ne fonctionne-t-il pas?
Obtenir undefined pour anchor [0] .href avez-vous testé cela? Si oui, veuillez mettre à jour la réponse avec une solution complète.
désolé, je viens de réaliser que vous obtenez le li pas le a. Mettra à jour la réponse maintenant.
// Create an element
const el = document.createElement("div");
// set the inner HTML
el.innerHTML = `
<p>Reference information</p>
<ul>
<li><a href="https://myurl.com">My Url</a></li>
<li><a href="https://yoururl.com">Your Url</a></li>
</ul>
`;
// grab all <a> tag
const nodeList = el.querySelectorAll("a");
// convert to array
const nodeArray = [...nodeList];
// map to href
const hrefs = nodeArray.map((a) => a.href); // ["https://myurl.com/", "https://yoururl.com/"]
C'est la solution que je recherche, excellente façon dont vous l'avez montré. à votre santé.
Vous pouvez utiliser Array.prototype.map comme:
var anchorUrls = Array.prototype.map.call(
document.anchors, (i) => i.href;
);
console.log(anchorUrls);