How to add a var to href

邮差的信 提交于 2020-01-16 05:17:05

问题


I need something like this:

var link = " http://www.google.com";

<a href='link' />

So I need to use a variable as href attribue of a link. Is this possible?

It worked with "<a href= '" + link + "' />". Is there a better way?


回答1:


You should set the href value on the server, it is bad design to use scripting for this.

However, to answer the question, it can be done by using script to set the href property of the A element once it is in the DOM, e.g.:

<a href="<a useful URI if javascript not available>" id="a0">foo</a>

<script type="text/javascript">
  var a = document.getElementById('a0');
  if (a) {
    a.href = "http://www.google.com";
  }
</script>

Of course there are a thousand other ways, all with their pitfalls. So set the value on the server and avoid them all.

-- 
Rob



回答2:


Using jQuery this would be

var link = "http://www.google.com";
$("a[href='link']").attr("href", link);

Though this would not degrade gracefully should javascript be turned off and you'd probably want to use something else rather than selecting by the href anyways.




回答3:


If you are actually writing both of those lines of code, it would be much easier to use write

<a href="http://www.google.com">Google</a>

Otherwise, you will need to use JavaScript to set the href property of your link, which will require getting a reference to it (which means you should set its id property).

So you could write something like:

<a id="myLink">Google</a>

and in your JavaScript have:

document.getElementById("myLink").href=link

but first, please think about whether this is really necessary (or provide some more details in your question).




回答4:


You're using Jetpack, so you can do <a href={link}/>.toXMLString().

If all you want to do is create an <a/> element, use the following.

var anchor = document.createElement("a");
anchor.href = link;


来源:https://stackoverflow.com/questions/2121491/how-to-add-a-var-to-href

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!