javascript - Hent lokal href-verdi fra anker (a) tag


Jeg har en anker-tag som har en lokal href-verdi, og en JavaScript-funksjon som bruker href-verdien, men sender den til et litt annet sted enn den normalt ville gå. Taggen ser slik ut

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

og en JavaScript-funksjon som ser ut som

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

Jeg ville forventet at item.href bare ville returnere en kort streng med "sec/IF00.html", men i stedet returnerer den hele href, "http://www.thecurrentdomain.com/sec/IF00.html". Finnes det en måte jeg kan hente ut bare den korte href som er satt i <a>-taggen? Eller mister jeg det på grunn av naturlig HTML-oppførsel?

Jeg antar at jeg kunne bruke strengmanipulering for å gjøre dette, men det blir komplisert fordi min lokale side faktisk kan være "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", og href-feltet mitt kan ha eller ikke ha en undermappe i seg (for eksempel href="page.html" vs. href="sub/page.html"), så jeg kan ikke alltid bare fjerne alt før den siste skråstreken.

Du lurer kanskje på hvorfor jeg ber om dette, og det er fordi det bare vil gjøre siden mye ryddigere. Hvis det ikke er mulig å få bare den korte href (som satt i ankertaggen <a>), kunne jeg sannsynligvis bare satt inn et ekstra felt i taggen, som link="sec/IF00.html", men igjen, det ville være litt rotete.

Svar #1

Koden nedenfor henter hele banen, der ankerpunktene er:

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

mens den nedenfor får verdien av href-attributtet:

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

Svar #2

document.getElementById("link").getAttribute("href"); Hvis du har mer enn ett <a>-element, for eksempel:

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

Du kan gjøre det slik: document.getElementById("link")[0].getAttribute("href"); for å få tilgang til den første arrayen av <a>-tagger, eller avhenger av betingelsen du lager.

Relaterte artikler