如何href使用JavaScript动态将属性添加到链接?
我基本上想动态添加一个href属性<a></a>(即,当用户单击网站中的特定图像时)。
来自:
<a>Link</a>
我需要去:
<a href="somelink url">Link</a>
Answers:
var a = document.getElementById('yourlinkId'); //or grab it by tagname etc
a.href = "somelink url"
HTMLLinkElement其中支持设置某些字段,例如href。您必须查看参考资料,看看无需使用即可使用哪一个setAttribute。另一个示例是<table>元素(HTMLTableElement),您可以在其中使用该元素insertRow()来插入新行,而不必创建<tr>并将其附加到表中。
setAttribute()和getAttribute(),这些属性在IE中是不完整的,因此并不总是能达到您的期望。见stackoverflow.com/questions/4456231/...
我假设您知道如何获取<a>元素的DOM对象(使用document.getElementById或其他方法)。
要添加任何属性,只需在DOM对象上使用setAttribute方法:
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。您在谈论自定义属性吗?
getAttributeand setAttribute;"tagName"是不能用作属性的属性的示例。仅当使用HTML且对于DOM HTML规范中定义的某些属性时,才可以使用这些属性来读取和分配属性。
tagName 是ElementHTML和XML DOM中JavaScript对象的属性,并且您不能通过来获得元素的标签名getAttribute("tagName")(IE中的实现getAttribute()和setAttribute()损坏的IE除外),这似乎与您所说的相反。
首先,尝试更改<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。
setAttribute)。有人知道这种方法是否标准吗?