如何使用JavaScript动态地向链接添加href
属性?
我基本上想要在用户单击网站上的特定图像时动态地向<a></a>
添加href
属性。
所以从:
<a>Link</a>
我需要前往:
<a href="somelink url">Link</a>
如何使用JavaScript动态地向链接添加href
属性?
我基本上想要在用户单击网站上的特定图像时动态地向<a></a>
添加href
属性。
所以从:
<a>Link</a>
我需要前往:
<a href="somelink url">Link</a>
var a = document.getElementById('yourlinkId'); //or grab it by tagname etc
a.href = "somelink url"
假设你知道如何获取<a>
元素的DOM对象(使用document.getElementById
或其他方法)。
要添加任何属性,只需在DOM对象上使用setAttribute方法:
a = document.getElementById(...);
a.setAttribute("href", "somelink url");
setAttribute
显然是标准(http://www.w3.org/TR/DOM-Level-2-Core/core.html#ID-F68F082),W3C不定义任何它不适用于的属性。相反,我可以保证使用该属性将无法使用某些属性名称。例如tagName
和setAttribute
- 这些已经是Element接口的字段/方法。我没有看到W3C文档中提到属性的属性。 - mgiucatagName
的意思。你是在说自定义属性吗? - Tim DowntagName
属性(即 Element 对象的成员,它告诉您元素的标记名称)。我正在谈论具有名为 tagName
的属性的假设 XML 元素。例如,<myelement tagName="foo">
。你不能使用 elem.tagName
从该元素中获取 "foo",因为该名称已被保留。您必须使用 elem.getAttribute("tagName")
,这是读取 XML 属性的通用方式。 - mgiucadocument.getElementById('link-id').href = "new-href";
我知道这是一篇旧帖子,但下面这个一行代码可能更适合某些人。
首先,尝试将<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>
a
标签添加href
(我基本上想动态地添加一个<a></a>
的href属性)。然而,这个答案似乎在解释如何创建带有href
的a
标签。 - Moishe Lipskerelement.setAttribute('href', abc)
的情况下,不必要地改变了DOM。 - undefined更实际的解决方案:
<a id="someId">Link</a>
const a = document.querySelector('#someId');
a.href = 'url';
querySelector
。 - Reality我来这里是因为我想在链接被点击后动态设置链接的 href 属性
<a id='dynamic'>link text</a>
document.getElementById("dynamic").addEventListener("click", onClick_dynamic)
function onClick_dynamic(e){
const nextPage = getNextPage()
document.getElementById("dynamic").href = _BASE_URL + "?nextPage=" + nextPage
// e.default processing sends user to href
}
我知道这里似乎有很多好答案,但没有一个对于我在Angela的2022年Udemy Web开发编程班中“被告知”要做的事情足够简单。
所以我想起使用脚本代码有多简单,并尝试了一下,它的效果也很好。
像我这样正在学习的人,让我解释一下: . - 带您进入当前URL 然后是静态路径 然后是为每篇文章生成的动态变量(它是一个博客网站)
<a href="./posts/<%= post.title %>">Read More</a>
这是在 EJS 页面中使用 JS。
同样的解决方案也在这个编程训练营的解决方案讲座中提供: https://www.udemy.com/course/the-complete-web-development-bootcamp/learn/lecture/12385596#overview
第 317 讲
单行解决方案
<a id="yourId">Link</a>
document.querySelector("#yourId").href("URL")
JavaScript已添加
var x = "www.google.com";
vay y = "550";
var z= x+y;
document.write('<a href="' + z + '">GONDER</a>');
document.write
这种方法很糟糕,几乎不应该被考虑使用。 - Reality
setAttribute
)。是否有人知道这种方法是否标准? - mgiucaHTMLLinkElement
中定义的方法,支持设置诸如“href”之类的特定字段。您需要查看参考文献以查看哪些可以在不必使用“setAttribute”的情况下使用。另一个例子是<table>
元素(HTMLTableElement),您可以使用insertRow()
插入新行而无需创建<tr>
并将其附加到表格中。 - ThaisetAttribute()
和getAttribute()
方法,因为这两个方法在IE浏览器中存在问题,并且有时并不能按照你的期望工作。更多信息请参见https://dev59.com/yFLTa4cB1Zd3GeqPcrLh#4456805。 - Tim Down