javascript - Hämta lokal href-värde från anchor (a) tagg


Jag har en ankartagg som har ett lokalt href-värde, och en JavaScript-funktion som använder href-värdet men skickar det till en något annan plats än det normalt skulle gå. Taggen ser ut som

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

och en JavaScript-funktion som ser ut som

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

Jag skulle förvänta mig att item.href bara skulle returnera en kort sträng som "sec/IF00.html", men istället returnerar det hela href, "http://www.thecurrentdomain.com/sec/IF00.html". Finns det ett sätt att bara få ut den korta href som är angiven i anchor-<a>-taggen? Eller förlorar jag det på grund av HTML:s naturliga beteende?

Jag antar att jag skulle kunna använda en strängmanipulation för att göra detta, men det blir krångligt eftersom min lokala sida faktiskt kan vara "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", och mitt href-fält kanske eller inte har en underkatalog i sig (till exempel href="page.html" vs. href="sub/page.html"), så jag kan inte alltid bara ta bort allt före den sista snedstrecket.

Du kanske undrar varför jag begär detta, och det är för att det bara kommer att göra sidan mycket renare. Om det inte är möjligt att bara få den korta href (som satt i ankarets <a>-tagg), så skulle jag förmodligen bara kunna lägga till ett extra fält i taggen, som link="sec/IF00.html", men återigen, det skulle vara lite rörigare.

Svar #1

Koden nedan hämtar den fullständiga sökvägen där ankarpunkterna är:

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

medan den nedan hämtar värdet på href-attributet:

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

Svar #2

document.getElementById("link").getAttribute("href"); Om du har mer än en <a> -tagg, till exempel:

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

Du kan göra det så här: document.getElementById("link")[0].getAttribute("href"); för att komma åt den första arrayen av <a>-taggar, eller beroende på villkoret du skapar.

Relaterade artiklar