Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我怎样才能加上?’;href";使用JavaScript动态地将属性设置为链接?_Javascript_Html - Fatal编程技术网

我怎样才能加上?’;href";使用JavaScript动态地将属性设置为链接?

我怎样才能加上?’;href";使用JavaScript动态地将属性设置为链接?,javascript,html,Javascript,Html,如何使用JavaScript动态向链接添加href属性 我基本上想在我假设您知道如何为DOM对象上的方法获取DOM对象: a = document.getElementById(...); a.setAttribute("href", "somelink url"); 我知道这是一篇老文章,但这里有一行可能更适合一些人; 这样,链接将如下所示: <a href="somelink">Link</a> 更多实际解决方案: <a id="someId

如何使用JavaScript动态向链接添加
href
属性

我基本上想在
我假设您知道如何为DOM对象上的
方法获取DOM对象:

a = document.getElementById(...);
a.setAttribute("href", "somelink url");

我知道这是一篇老文章,但这里有一行可能更适合一些人;
这样,链接将如下所示:

<a href="somelink">Link</a>

更多实际解决方案:

<a id="someId">Link</a>

const a = document.querySelector('#someId');
a.href = 'url';
链接
const a=document.querySelector(“#someId”);
a、 href='url';

在此处输入代码添加javasicript

var x = "www.google.com";
vay y = "550";
var z= x+y;
document.write('<a href="' + z + '">GONDER</a>');
var x=“www.google.com”;
vay y=“550”;
var z=x+y;
文件。写(“”);

很有趣。我不知道您可以直接访问属性作为字段(与我下面的解决方案相比,使用
setAttribute
)。有人知道这种方法是否是标准的吗?我认为在一个DOM元素上,href是一个可以由el.href直接设置的属性。相反,setAttribute(el,attr)用于向特定DOM元素添加一些自定义属性,因此在本例中不需要使用它来设置std.attr,但这两种方法都正确吗?不要试图批评这个答案——它很可能是正确的。但是在网络上,仅仅获得适合你的东西是不够的。它需要在所有浏览器中工作,这意味着您需要遵循标准。FWIW,这也适用于我(在Firefox中),但我想知道这是否真的是一种标准的方法。W3CDOM规范()似乎没有提到它。这些接口可以更容易地与元素交互。例如,所有链接都定义了支持设置某些字段的方法,如
href
。您必须查看引用,以查看无需
setAttribute
即可使用哪一个。另一个例子是
元素(),在该元素中,您可以使用
insertRow()
插入新行,而无需创建
并将其附加到表中。@mgiuca:一般来说,对于HTML DOM,您应该更喜欢使用属性,而不是
setAttribute()
getAttribute()
,这些都是在IE中被破坏的,并不总是做你可能期望的事情。参见pal,setattribute对于修改属性来说是非常非标准的。要访问或修改当前值,应使用属性。例如,使用elt.value而不是elt.setAttribute('value',val)@naveen说“最显著的是XUL”,这大概不是这个意思。我不确定它引用了哪些其他值(“某些属性”非常模糊),但是
setAttribute
显然是标准(),W3C没有定义任何它不适用的属性。相反,我可以保证,对于某些属性名称,使用该属性将失败。例如
标记名
设置属性
——这些已经是元素接口的字段/方法。我在W3C文档中没有看到任何提到属性属性的地方。@mgiuca:看来你在发布最后一条评论后找到了相关的规范。我不理解你关于属性失败,然后提到
标记名
的观点。你说的是自定义属性吗?我的意思是DOM(即使是在浏览器中实现的)是一种通用规范,用于处理XML树,而不仅仅是HTML。使用任意XML元素时,可靠获取和设置属性的唯一方法是
getAttribute
setAttribute
<代码>“标记名”是不能用作属性的属性的一个示例。只有在使用HTML以及DOM HTML规范中定义的某些属性时,才能使用属性来读取和分配属性。我可能有误解,但这仍然令人困惑<代码>标记名是HTML和XML DOM中JavaScript中
元素
对象的属性,您无法通过
getAttribute(“标记名”)
获取元素的标记名(IE中除外,IE中
getAttribute()
setAttribute()
的实现已中断),这和你说的正好相反。欢迎来到Stackoverflow。OP的问题似乎是关于如何将
href
添加到现有的
a
标记中(我基本上希望动态添加a href属性)。然而,这个答案似乎解释了如何创建一个带有
href
@MoisheLipsker的
标签,它仍然有效。即使它确实销毁了原始文件,它仍然会以某种方式“设置”href。但是,这是不实际的,因为它不会保留以前的链接而不销毁它,因此可能会销毁其他属性和信息。他们希望更改现有链接,而不是创建新链接。另外,
document.write
是一种可怕的方法,几乎不应该考虑使用它。这是最好的方法,甚至不太接近。这是非常危险的,因为XSS在您的方法中非常简单。此外,document.write将清除整个网页。你回答的另一个问题是,这里的OP(原始海报)不需要新链接,而需要现有链接,他们希望对其href进行编辑。最后,使用
querySelector
document.getElementById('link-id').href = "new-href";
var abc = 'somelink';
document.getElementById('test').innerHTML = '<a href="' + abc + '">Link</a>';
<a href="somelink">Link</a>
<a id="someId">Link</a>

const a = document.querySelector('#someId');
a.href = 'url';
var x = "www.google.com";
vay y = "550";
var z= x+y;
document.write('<a href="' + z + '">GONDER</a>');