web-dev-qa-db-fra.com

Obtenir la valeur href locale de la balise anchor (a)

J'ai une balise d'ancrage qui a une valeur href locale et une fonction JavaScript qui utilise la valeur href mais la dirige vers un endroit légèrement différent de celui où elle se trouverait normalement. Le tag ressemble à

<a onclick="return follow(this);" href="sec/IF00.html"></a>

et une fonction JavaScript qui ressemble à

baseURL = 'http://www.someotherdomain.com/';
function follow(item) {
    location.href = baseURL + item.href;
}

Je m'attendrais à ce que item.href renvoie simplement une chaîne courte "sec/IF00.html", mais renvoie plutôt le href complet, "http://www.thecurrentdomain.com/sec/IF00.html". Existe-t-il un moyen de sortir le href court comme indiqué dans la balise anchor <a>? Ou est-ce que je perds cela par un comportement HTML naturel?

Je suppose que je pourrais utiliser une manipulation de chaîne pour le faire, mais cela devient compliqué, car ma page locale peut être "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", et mon champ href peut ou peut ne pas avoir de sous-répertoire (par exemple, href="page.html" contre href="sub/page.html"), je ne peux donc pas toujours tout supprimer avant la dernière barre oblique.

Vous vous demandez peut-être pourquoi je vous le demande, et c'est parce que cela rendra la page beaucoup plus nette. S'il n'est pas possible d'obtenir uniquement le href court (comme dans la balise anchor <a>), alors je pourrais probablement simplement insérer un champ supplémentaire dans la balise, comme link="sec/IF00.html", mais encore une fois, ce serait soyez un peu plus en désordre.

92
Michael Plautz

Le code ci-dessous obtient le chemin complet, où les points d'ancrage:

document.getElementById("aaa").href; // http://example.com/sec/IF00.html

tandis que celui ci-dessous obtient la valeur de l'attribut href:

document.getElementById("aaa").getAttribute("href"); // sec/IF00.html
201
aorcsik

document.getElementById("link").getAttribute("href"); Si vous avez plusieurs balises <a>, par exemple:

<ul>
  <li>
    <a href="1"></a>
  </li>
  <li>
    <a href="2"></a>
  </li>
  <li>
    <a href="3"></a>
  </li>
</ul>

Vous pouvez le faire comme ceci: document.getElementById("link")[0].getAttribute("href"); pour accéder au premier tableau de balises <a>, ou dépend de la condition que vous créez.

6
Zange-chan

Ce code fonctionne pour moi pour obtenir tous les liens du document

var links=document.getElementsByTagName('a'), hrefs = [];
for (var i = 0; i<links.length; i++)
{   
    hrefs.Push(links[i].href);
}
1
nazifa rashid

La propriété href définit ou retourne la valeur de l'attribut href d'un lien.

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href');
    var url="https://www.google.com/";
    console.log( url+hello);
0
M.Ganji