Bağlantı (a) etiketinden yerel href değerini alın


121

Yerel href değerine sahip bir bağlantı etiketim ve href değerini kullanan ancak normalde gideceğinden biraz farklı bir yere yönlendiren bir JavaScript işlevim var. Etiket şöyle görünüyor

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

ve şuna benzeyen bir JavaScript işlevi

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

Bunun item.hrefkısa bir "sec / IF00.html" dizesi döndürmesini beklerdim, ancak bunun yerine tam href, "http://www.thecurrentdomain.com/sec/IF00.html" döndürür. Bağlantı <a>etiketine koyduğum gibi sadece kısa href'i çıkarmanın bir yolu var mı ? Yoksa bunu doğal HTML davranışıyla mı kaybederim?

Sanırım bunu yapmak için bir dize manipülasyonu kullanabilirim, ancak yerel sayfam aslında "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html" olabilir ve href alanım veya içinde bir alt dizini olmayabilir (ex href="page.html"vs. için href="sub/page.html"), bu yüzden son eğik çizgiden önce her şeyi her zaman kaldıramam.

Bunu neden istediğimi merak ediyor olabilirsiniz ve bunun nedeni sayfayı çok daha temiz hale getirmesidir. Yalnızca kısa href'i elde etmek mümkün değilse (bağlantı <a>etiketinde belirtildiği gibi), o zaman muhtemelen etikete fazladan bir alan ekleyebilirim link="sec/IF00.html", ama yine, bu biraz daha karmaşık olur.

Yanıtlar:


256

Aşağıdaki kod, bağlantı noktasının işaret ettiği tam yolu alır:

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

Aşağıdakiler ise hrefözniteliğin değerini alır :

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

6

document.getElementById("link").getAttribute("href"); Birden fazla <a>etiketiniz varsa, örneğin:

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

Bunu şu şekilde yapabilirsiniz: document.getElementById("link")[0].getAttribute("href");ilk <a>etiket dizisine erişmek için veya yaptığınız koşula bağlı olarak.


2

Bu kod, belgenin tüm bağlantılarını almam için çalışıyor

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

0

Href özelliği, bir bağlantının href niteliğinin değerini ayarlar veya döndürür.

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

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

2
OP bunu zaten denedi ve ona istenen sonuçları vermedi.
Bobort
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.