Bagaimana cara menambahkan href
atribut ke tautan secara dinamis menggunakan JavaScript?
Saya pada dasarnya ingin menambahkan href
atribut ke <a></a>
dinamis (yaitu ketika pengguna mengklik gambar tertentu di situs web).
Jadi dari:
<a>Link</a>
Saya harus pergi ke:
<a href="somelink url">Link</a>
javascript
html
Pavel
sumber
sumber
setAttribute
). Adakah yang tahu jika pendekatan ini standar?HTMLLinkElement
yang mendukung pengaturan bidang tertentu sepertihref
. Anda harus melihat referensi untuk melihat mana yang dapat Anda gunakan tanpa harussetAttribute
. Contoh lainnya adalah<table>
elemen ( HTMLTableElement ) di mana Anda dapat menggunakaninsertRow()
untuk menyisipkan baris baru tanpa harus membuat<tr>
dan menambahkannya ke tabel.setAttribute()
dangetAttribute()
, yang rusak di IE dan tidak selalu melakukan apa yang Anda harapkan. Lihat stackoverflow.com/questions/4456231/…Saya berasumsi Anda tahu cara mendapatkan objek DOM untuk
<a>
elemen (gunakandocument.getElementById
atau metode lain).Untuk menambahkan atribut apa pun, cukup gunakan metode setAttribute pada objek DOM:
a = document.getElementById(...); a.setAttribute("href", "somelink url");
sumber
setAttribute
jelas merupakan standarnya ( w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082 ), dan W3C tidak menentukan atribut apa pun yang tidak berfungsi untuknya. Sebaliknya, saya dapat menjamin bahwa penggunaan properti akan gagal untuk nama atribut tertentu. SepertitagName
, dansetAttribute
- itu sudah merupakan bidang / metode dari antarmuka Elemen. Saya tidak melihat di mana pun di dokumen W3C yang menyebutkan properti untuk atribut.tagName
. Apakah Anda berbicara tentang atribut khusus?getAttribute
dansetAttribute
;"tagName"
adalah contoh atribut yang tidak bisa berfungsi sebagai properti. Hanya saat bekerja dengan HTML, dan untuk atribut tertentu yang ditentukan dalam spesifikasi HTML DOM, Anda dapat menggunakan properti untuk membaca dan menetapkan atribut.tagName
adalah propertiElement
objek dalam JavaScript, baik dalam HTML maupun XML DOM, dan Anda tidak bisa mendapatkan nama tag elemen melaluigetAttribute("tagName")
(kecuali di IE, yang implementasinyagetAttribute()
dansetAttribute()
rusak), yang tampaknya berlawanan dengan apa yang Anda katakan.Pertama, coba ubah
<a>Link</a>
ke<span id=test><a>Link</a></span>
.Kemudian, tambahkan sesuatu seperti ini di fungsi javascript yang Anda panggil:
var abc = 'somelink'; document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>';
Dengan cara ini tautannya akan terlihat seperti ini:
<a href="somelink">Link</a>
sumber
href
ke tag yang adaa
( pada dasarnya saya ingin menambahkan atribut href ke <a> </a> secara dinamis ). Namun, jawaban ini tampaknya akan menjelaskan bagaimana membuat sebuaha
tag denganhref
.document.getElementById('link-id').href = "new-href";
Saya tahu ini adalah posting lama, tapi ini satu kalimat yang mungkin lebih cocok untuk beberapa orang.
sumber