Dapatkan nilai href lokal dari tag anchor (a)

121

Saya memiliki tag anchor yang memiliki nilai href lokal, dan fungsi JavaScript yang menggunakan nilai href tetapi mengarahkannya ke tempat yang sedikit berbeda dari biasanya. Tagnya terlihat seperti

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

dan fungsi JavaScript yang terlihat seperti itu

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

Saya berharap itu item.hrefhanya akan mengembalikan string pendek "sec / IF00.html", tetapi mengembalikan href lengkap, "http://www.thecurrentdomain.com/sec/IF00.html". Apakah ada cara agar saya dapat menarik href pendek seperti yang dimasukkan ke dalam <a>tag jangkar ? Atau apakah saya kehilangan itu dengan perilaku HTML alami?

Saya kira saya dapat menggunakan manipulasi string untuk melakukan ini, tetapi itu menjadi rumit karena halaman lokal saya sebenarnya mungkin "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", dan bidang href saya mungkin atau mungkin tidak memiliki subdirektori di dalamnya (untuk ex href="page.html"vs. href="sub/page.html"), jadi saya tidak bisa selalu menghapus semuanya sebelum garis miring terakhir.

Anda mungkin bertanya-tanya mengapa saya meminta ini, dan itu karena itu hanya akan membuat halaman jauh lebih bersih. Jika tidak mungkin untuk mendapatkan href pendek (seperti yang dimasukkan ke dalam <a>tag jangkar ), maka saya mungkin bisa memasukkan bidang tambahan ke dalam tag, seperti link="sec/IF00.html", tetapi sekali lagi, itu akan sedikit lebih berantakan.

Michael Plautz
sumber

Jawaban:

256

Kode di bawah ini mendapatkan jalur lengkap, di mana titik jangkar:

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

sedangkan yang di bawah ini mendapatkan nilai hrefatribut:

document.getElementById("aaa").getAttribute("href"); // sec/IF00.html
aorcsik.dll
sumber
6

document.getElementById("link").getAttribute("href"); Jika Anda memiliki lebih dari satu <a>tag, misalnya:

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

Anda dapat melakukannya seperti ini: document.getElementById("link")[0].getAttribute("href");untuk mengakses larik pertama dari <a>tag, atau bergantung pada kondisi yang Anda buat.

Zange-chan
sumber
2

Kode ini berfungsi untuk saya mendapatkan semua tautan dokumen

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

Properti href menyetel atau mengembalikan nilai atribut href dari sebuah tautan.

  var hello = domains[i].getElementsByTagName('a')[0].getAttribute('href');
    var url="https://www.google.com/";
    console.log( url+hello);
M. Ganji
sumber
-2
document.getElementById("aaa").href; //for example: http://example.com/sec/IF00.html
ntihin
sumber
2
OP sudah mencobanya, dan tidak memberikan hasil yang diinginkan.
Bobort