Как я могу href
динамически добавить атрибут к ссылке с помощью JavaScript?
Я в основном хочу добавить href
атрибут <a></a>
динамически (т.е. когда пользователь нажимает на определенное изображение на веб-сайте).
Итак из:
<a>Link</a>
Мне нужно перейти по адресу:
<a href="somelink url">Link</a>
javascript
html
Павел
источник
источник
setAttribute
). Кто-нибудь знает, стандартен ли этот подход?HTMLLinkElement
которых поддерживается установка определенных полей, таких какhref
. Вы должны посмотреть ссылку, чтобы увидеть, какой из них вы можете использовать без необходимостиsetAttribute
. Другой пример -<table>
элемент ( HTMLTableElement ), который можно использоватьinsertRow()
для вставки новых строк без необходимости создавать<tr>
и добавлять его в таблицу.setAttribute()
иgetAttribute()
, которые не работают в IE и не всегда делают то, что вы ожидаете. См. Stackoverflow.com/questions/4456231/…Я предполагаю, что вы знаете, как получить объект DOM для
<a>
элемента (используяdocument.getElementById
или какой-либо другой метод).Чтобы добавить любой атрибут, просто используйте метод setAttribute для объекта DOM:
a = document.getElementById(...); a.setAttribute("href", "somelink url");
источник
setAttribute
явно является стандартом ( w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082 ), и W3C не определяет никаких атрибутов, для которых он не работает. И наоборот, я могу гарантировать, что использование свойства не удастся для определенных имен атрибутов. Такие какtagName
, иsetAttribute
- это уже поля / методы интерфейса Element. Я не вижу нигде в документе W3C, где упоминаются свойства атрибутов.tagName
. Вы говорите о настраиваемых атрибутах?getAttribute
иsetAttribute
;"tagName"
является примером атрибута, который не может работать как свойство. Только при работе с HTML и для определенных атрибутов, определенных в спецификации DOM HTML, вы можете использовать свойства для чтения и назначения атрибутов.tagName
является свойствомElement
объектов в JavaScript как в HTML, так и в XML DOM, и вы не можете получить имя тега элемента черезgetAttribute("tagName")
(за исключением IE, чья реализацияgetAttribute()
иsetAttribute()
нарушена), что кажется прямо противоположным тому, что вы говорите.Сначала попробуйте перейти
<a>Link</a>
на<span id=test><a>Link</a></span>
.Затем добавьте что-то подобное в вызываемую функцию javascript:
var abc = 'somelink'; document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>';
Таким образом, ссылка будет выглядеть так:
<a href="somelink">Link</a>
источник
href
к существующемуa
тегу ( я в основном хочу добавить атрибут href в <a> </a> динамически ). Тем не менее, этот ответ , кажется, объяснить , как создать вa
тег сhref
.document.getElementById('link-id').href = "new-href";
Я знаю, что это старый пост, но вот однострочный текст, который может быть более подходящим для некоторых людей.
источник